1 /* Generated by Nim Compiler v1.6.2 */
2 #define NIM_INTBITS 32
3 
4 #include "nimbase.h"
5 #include <sys/mman.h>
6 #include <stdio.h>
7 #include <string.h>
8 #include <stdlib.h>
9 #include <setjmp.h>
10 #include <signal.h>
11 #undef LANGUAGE_C
12 #undef MIPSEB
13 #undef MIPSEL
14 #undef PPC
15 #undef R3000
16 #undef R4000
17 #undef i386
18 #undef linux
19 #undef mips
20 #undef near
21 #undef far
22 #undef powerpc
23 #undef unix
24 #define nimfr_(x, y)
25 #define nimln_(x, y)
26 typedef struct Exception Exception;
27 typedef struct TNimType TNimType;
28 typedef struct TNimNode TNimNode;
29 typedef struct tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ;
30 typedef struct tyObject_GcStack__7fytPA5bBsob6See21YMRA tyObject_GcStack__7fytPA5bBsob6See21YMRA;
31 typedef struct tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w;
32 typedef struct tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g;
33 typedef struct tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg;
34 typedef struct tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ;
35 typedef struct tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg;
36 typedef struct tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw;
37 typedef struct tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA;
38 typedef struct tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw;
39 typedef struct tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw;
40 typedef struct tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg;
41 typedef struct tyTuple__ujsjpB2O9cjj3uDHsXbnSzg tyTuple__ujsjpB2O9cjj3uDHsXbnSzg;
42 typedef struct tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg;
43 typedef struct tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ;
44 typedef struct tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg;
45 typedef struct tyObject_BaseChunk__Sdq7WpT6qAH858F5ZEdG3w tyObject_BaseChunk__Sdq7WpT6qAH858F5ZEdG3w;
46 typedef struct tyObject_FreeCell__u6M5LHprqzkn9axr04yg9bGQ tyObject_FreeCell__u6M5LHprqzkn9axr04yg9bGQ;
47 typedef struct tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ;
48 typedef struct NimStringDesc NimStringDesc;
49 typedef struct TGenericSeq TGenericSeq;
50 typedef struct TSafePoint TSafePoint;
51 typedef struct RootObj RootObj;
52 typedef struct tySequence__uB9b75OUPRENsBAu4AnoePA tySequence__uB9b75OUPRENsBAu4AnoePA;
53 typedef struct tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA;
54 typedef struct GcFrameHeader GcFrameHeader;
55 typedef struct tyObject_ReraiseDefect__E0L0wGYS1gPD81VLstNO2g tyObject_ReraiseDefect__E0L0wGYS1gPD81VLstNO2g;
56 typedef struct tyObject_Defect__LbeSGvgPzGzXnW9caIkJqMA tyObject_Defect__LbeSGvgPzGzXnW9caIkJqMA;
57 typedef struct tyObject_OverflowDefect__9cxMi1BPLc3UKt9br86bGfGQ tyObject_OverflowDefect__9cxMi1BPLc3UKt9br86bGfGQ;
58 typedef struct tyObject_ArithmeticDefect__cT9c9bHlHSpA1QTnKbHjnIkA tyObject_ArithmeticDefect__cT9c9bHlHSpA1QTnKbHjnIkA;
59 typedef struct tyObject_CatchableError__qrLSDoe2oBoAqNtJ9badtnA tyObject_CatchableError__qrLSDoe2oBoAqNtJ9badtnA;
60 typedef struct tyObject_ValueError__yoNlBGx0D2tRizIdhQuENw tyObject_ValueError__yoNlBGx0D2tRizIdhQuENw;
61 typedef struct tyObject_KeyError__t7nhKLvXTQS9cS8ByJU9bIag tyObject_KeyError__t7nhKLvXTQS9cS8ByJU9bIag;
62 typedef struct tyObject_AssertionDefect__PtYxPmY5X0dorfvxAFbJpQ tyObject_AssertionDefect__PtYxPmY5X0dorfvxAFbJpQ;
63 typedef struct tyObject_ObjectAssignmentDefect__6toVe0IizlEwN9bORXEdX3g tyObject_ObjectAssignmentDefect__6toVe0IizlEwN9bORXEdX3g;
64 typedef struct tyObject_IndexDefect__n6tGEPHKkh7E1AP9bj30WrQ tyObject_IndexDefect__n6tGEPHKkh7E1AP9bj30WrQ;
65 typedef struct tyObject_OSError__BeJgrOdDsczOwEWOZbRfKA tyObject_OSError__BeJgrOdDsczOwEWOZbRfKA;
66 typedef struct tyObject_IOError__iLZrPn9anoh9ad1MmO0RczFw tyObject_IOError__iLZrPn9anoh9ad1MmO0RczFw;
67 typedef struct tyObject_EOFError__KGSY1JdrNB7Xi8KDhXFhSg tyObject_EOFError__KGSY1JdrNB7Xi8KDhXFhSg;
68 typedef struct tyObject_RangeDefect__Rp9adJYTsbbIUzQ8fWxwgdA tyObject_RangeDefect__Rp9adJYTsbbIUzQ8fWxwgdA;
69 typedef struct tyObject_DivByZeroDefect__n3A4gjRrFZBuNnTYx1h9a8w tyObject_DivByZeroDefect__n3A4gjRrFZBuNnTYx1h9a8w;
70 typedef N_NIMCALL_PTR(NIM_BOOL, tyProc__9axCnCRMUx32AHzFgBrzSMg) (Exception* e);
71 typedef N_NIMCALL_PTR(void, tyProc__T4eqaYlFJYZUv9aG9b1TV0bQ) (void);
72 typedef N_NIMCALL_PTR(void, tyProc__NFmM6mqUOVW3cJg4yvk8Fw) (Exception* e);
73 typedef NU8 tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A;
74 typedef NU8 tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ;
75 typedef N_NIMCALL_PTR(void, tyProc__ojoeKfW4VYIm36I9cpDTQIg) (void* p, NI op);
76 typedef N_NIMCALL_PTR(void*, tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ) (void* p);
77 struct TNimType {
78 NI size;
79 NI align;
80 tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A kind;
81 tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ flags;
82 TNimType* base;
83 TNimNode* node;
84 void* finalizer;
85 tyProc__ojoeKfW4VYIm36I9cpDTQIg marker;
86 tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ deepcopy;
87 };
88 struct tyObject_GcStack__7fytPA5bBsob6See21YMRA {
89 void* bottom;
90 };
91 struct tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w {
92 NI len;
93 NI cap;
94 tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g** d;
95 };
96 typedef tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ* tyArray__SPr7N6UKfuF549bNPiUvSRw[256];
97 typedef NU32 tyArray__BHbOSqU1t9b3Gt7K2c6fQig[24];
98 typedef tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* tyArray__N1u1nqOgmuJN9cSZrnMHgOQ[32];
99 typedef tyArray__N1u1nqOgmuJN9cSZrnMHgOQ tyArray__B6durA4ZCi1xjJvRtyYxMg[24];
100 typedef tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw* tyArray__lh2A89ahMmYg9bCmpVaplLbA[256];
101 struct tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA {
102 tyArray__lh2A89ahMmYg9bCmpVaplLbA data;
103 };
104 typedef tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* tyArray__0aOLqZchNi8nWtMTi8ND8w[2];
105 struct tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw {
106 tyArray__0aOLqZchNi8nWtMTi8ND8w link;
107 NI key;
108 NI upperBound;
109 NI level;
110 };
111 struct tyTuple__ujsjpB2O9cjj3uDHsXbnSzg {
112 tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* Field0;
113 NI Field1;
114 };
115 typedef tyTuple__ujsjpB2O9cjj3uDHsXbnSzg tyArray__LzOv2eCDGiceMKQstCLmhw[30];
116 struct tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg {
117 NI len;
118 tyArray__LzOv2eCDGiceMKQstCLmhw chunks;
119 tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg* next;
120 };
121 struct tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg {
122 NI minLargeObj;
123 NI maxLargeObj;
124 tyArray__SPr7N6UKfuF549bNPiUvSRw freeSmallChunks;
125 NU32 flBitmap;
126 tyArray__BHbOSqU1t9b3Gt7K2c6fQig slBitmap;
127 tyArray__B6durA4ZCi1xjJvRtyYxMg matrix;
128 tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw* llmem;
129 NI currMem;
130 NI maxMem;
131 NI freeMem;
132 NI occ;
133 NI lastSize;
134 tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA chunkStarts;
135 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* root;
136 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* deleted;
137 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* last;
138 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* freeAvlNodes;
139 NIM_BOOL locked;
140 NIM_BOOL blockChunkSizeIncrease;
141 NI nextChunkSize;
142 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw bottomData;
143 tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg heapLinks;
144 };
145 struct tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg {
146 NI stackScans;
147 NI cycleCollections;
148 NI maxThreshold;
149 NI maxStackSize;
150 NI maxStackCells;
151 NI cycleTableSize;
152 NI64 maxPause;
153 };
154 struct tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ {
155 NI counter;
156 NI max;
157 tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg* head;
158 tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg** data;
159 };
160 struct tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ {
161 tyObject_GcStack__7fytPA5bBsob6See21YMRA stack;
162 NI cycleThreshold;
163 NI zctThreshold;
164 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w zct;
165 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w decStack;
166 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w tempStack;
167 NI recGcLock;
168 tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg region;
169 tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg stat;
170 tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ marked;
171 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w additionalRoots;
172 NI gcThreadId;
173 };
174 typedef tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* tyUncheckedArray__qYl1ErvQvkPpq9bTvm2UvTg[1];
175 struct tyObject_BaseChunk__Sdq7WpT6qAH858F5ZEdG3w {
176 NI prevSize;
177 NI size;
178 };
179 struct tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ {
180   tyObject_BaseChunk__Sdq7WpT6qAH858F5ZEdG3w Sup;
181 tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ* next;
182 tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ* prev;
183 tyObject_FreeCell__u6M5LHprqzkn9axr04yg9bGQ* freeList;
184 NI free;
185 NI acc;
186 NIM_ALIGN(16) NU8 data[SEQ_DECL_SIZE];
187 };
188 typedef NI8 tyArray__mkmEeKAWtk2yS9bBb1lUWXA[256];
189 struct tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg {
190   tyObject_BaseChunk__Sdq7WpT6qAH858F5ZEdG3w Sup;
191 tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* next;
192 tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* prev;
193 NIM_ALIGN(16) NU8 data[SEQ_DECL_SIZE];
194 };
195 struct tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw {
196 NI size;
197 NI acc;
198 tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw* next;
199 };
200 typedef NU tyArray__cC4ce9cdvDKtIpar5g9cDejA[16];
201 struct tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw {
202 tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw* next;
203 NI key;
204 tyArray__cC4ce9cdvDKtIpar5g9cDejA bits;
205 };
206 struct tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ {
207 NI Field0;
208 NI Field1;
209 };
210 struct tyObject_FreeCell__u6M5LHprqzkn9axr04yg9bGQ {
211 tyObject_FreeCell__u6M5LHprqzkn9axr04yg9bGQ* next;
212 NI zeroField;
213 };
214 typedef tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg* tyUncheckedArray__xm0FYDlyTP1z2D1LZJL9bqQ[1];
215 typedef NI tyArray__9a8QARi5WsUggNU9bom7kzTQ[8];
216 struct tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg {
217 tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg* next;
218 NU key;
219 tyArray__9a8QARi5WsUggNU9bom7kzTQ bits;
220 };
221 struct TGenericSeq {
222 NI len;
223 NI reserved;
224 };
225 struct NimStringDesc {
226   TGenericSeq Sup;
227 NIM_CHAR data[SEQ_DECL_SIZE];
228 };
229 typedef N_NIMCALL_PTR(void, tyProc__W6IXMh2CA4X1rFYGjUb4yg) (NimStringDesc* msg);
230 struct RootObj {
231 TNimType* m_type;
232 };
233 struct Exception {
234   RootObj Sup;
235 Exception* parent;
236 NCSTRING name;
237 NimStringDesc* message;
238 tySequence__uB9b75OUPRENsBAu4AnoePA* trace;
239 Exception* up;
240 };
241 struct tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA {
242 NCSTRING procname;
243 NI line;
244 NCSTRING filename;
245 };
246 typedef NU8 tyEnum_WalkOp__Wfy7gT5VQ8B3aJBxqU8D9cQ;
247 struct tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g {
248 NI refcount;
249 TNimType* typ;
250 };
251 typedef NU8 tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ;
252 typedef NU8 tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ;
253 struct TNimNode {
254 tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ kind;
255 NI offset;
256 TNimType* typ;
257 NCSTRING name;
258 NI len;
259 TNimNode** sons;
260 };
261 struct TSafePoint {
262 TSafePoint* prev;
263 NI status;
264 jmp_buf context;
265 };
266 typedef void* tyArray__nySJCmQz9aRlAQeu3WJUx9cQ[2];
267 typedef N_NIMCALL_PTR(void, Finalizer) (void* self);
268 struct tyObject_Defect__LbeSGvgPzGzXnW9caIkJqMA {
269   Exception Sup;
270 };
271 struct tyObject_ReraiseDefect__E0L0wGYS1gPD81VLstNO2g {
272   tyObject_Defect__LbeSGvgPzGzXnW9caIkJqMA Sup;
273 };
274 struct tyObject_ArithmeticDefect__cT9c9bHlHSpA1QTnKbHjnIkA {
275   tyObject_Defect__LbeSGvgPzGzXnW9caIkJqMA Sup;
276 };
277 struct tyObject_OverflowDefect__9cxMi1BPLc3UKt9br86bGfGQ {
278   tyObject_ArithmeticDefect__cT9c9bHlHSpA1QTnKbHjnIkA Sup;
279 };
280 typedef NIM_CHAR tyArray__gpc2RrLEcWgv7ONpLYNHOw[2001];
281 typedef N_NOCONV_PTR(void, tyProc__ZEo3s9cIqJYP74f7GMZM2FA) (int a);
282 typedef tyProc__T4eqaYlFJYZUv9aG9b1TV0bQ tyArray__9aTRall1siQT9bXabu2aKXUg[3500];
283 struct tyObject_CatchableError__qrLSDoe2oBoAqNtJ9badtnA {
284   Exception Sup;
285 };
286 struct tyObject_ValueError__yoNlBGx0D2tRizIdhQuENw {
287   tyObject_CatchableError__qrLSDoe2oBoAqNtJ9badtnA Sup;
288 };
289 struct tyObject_KeyError__t7nhKLvXTQS9cS8ByJU9bIag {
290   tyObject_ValueError__yoNlBGx0D2tRizIdhQuENw Sup;
291 };
292 struct tyObject_AssertionDefect__PtYxPmY5X0dorfvxAFbJpQ {
293   tyObject_Defect__LbeSGvgPzGzXnW9caIkJqMA Sup;
294 };
295 typedef NIM_CHAR tyArray__eVNFTutn6un5gcq48fQLdg[65];
296 struct tyObject_ObjectAssignmentDefect__6toVe0IizlEwN9bORXEdX3g {
297   tyObject_Defect__LbeSGvgPzGzXnW9caIkJqMA Sup;
298 };
299 struct tyObject_IndexDefect__n6tGEPHKkh7E1AP9bj30WrQ {
300   tyObject_Defect__LbeSGvgPzGzXnW9caIkJqMA Sup;
301 };
302 struct tyObject_OSError__BeJgrOdDsczOwEWOZbRfKA {
303   tyObject_CatchableError__qrLSDoe2oBoAqNtJ9badtnA Sup;
304 NI32 errorCode;
305 };
306 struct tyObject_IOError__iLZrPn9anoh9ad1MmO0RczFw {
307   tyObject_CatchableError__qrLSDoe2oBoAqNtJ9badtnA Sup;
308 };
309 struct tyObject_EOFError__KGSY1JdrNB7Xi8KDhXFhSg {
310   tyObject_IOError__iLZrPn9anoh9ad1MmO0RczFw Sup;
311 };
312 typedef NF tyArray__yp9a149boki9cCCWgfXI0Ip4A[23];
313 typedef NIM_CHAR tyArray__PGLh8drTnaWr3s1qUUSq2Q[500];
314 struct tyObject_RangeDefect__Rp9adJYTsbbIUzQ8fWxwgdA {
315   tyObject_Defect__LbeSGvgPzGzXnW9caIkJqMA Sup;
316 };
317 typedef NCSTRING tyUncheckedArray__nvS6J9clHMUMHfoZd8Ad2zg[1];
318 struct tyObject_DivByZeroDefect__n3A4gjRrFZBuNnTYx1h9a8w {
319   tyObject_ArithmeticDefect__cT9c9bHlHSpA1QTnKbHjnIkA Sup;
320 };
321 struct tySequence__uB9b75OUPRENsBAu4AnoePA {
322   TGenericSeq Sup;
323   tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA data[SEQ_DECL_SIZE];
324 };
325 static N_INLINE(void, initStackBottom)(void);
326 N_LIB_PRIVATE N_NOINLINE(void, nimGC_setStackBottom)(void* theStackBottom);
327 N_LIB_PRIVATE N_NIMCALL(void, setPosition__system_5395)(tyObject_GcStack__7fytPA5bBsob6See21YMRA* stack, void* position);
328 N_LIB_PRIVATE N_NIMCALL(void, initGC__system_2398)(void);
329 N_LIB_PRIVATE N_NIMCALL(void, init__system_4877)(tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w* s, NI cap);
330 N_LIB_PRIVATE N_NOCONV(void*, alloc0Impl__system_1745)(NI size);
331 N_LIB_PRIVATE N_NIMCALL(void*, alloc0__system_4771)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* allocator, NI size);
332 N_LIB_PRIVATE N_NIMCALL(void*, alloc__system_4767)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* allocator, NI size);
333 N_LIB_PRIVATE N_NIMCALL(void*, rawAlloc__system_4551)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, NI requestedSize);
334 static N_INLINE(NI, roundup__system_3696)(NI x, NI v);
335 N_LIB_PRIVATE N_NIMCALL(tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ*, getSmallChunk__system_4530)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a);
336 N_LIB_PRIVATE N_NIMCALL(tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*, getBigChunk__system_4507)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, NI size);
337 static N_INLINE(void, mappingSearch__system_3844)(NI* r, NI* fl, NI* sl);
338 static N_INLINE(NI, msbit__system_3819)(NU32 x);
339 static N_INLINE(tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*, findSuitableBlock__system_3876)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, NI* fl, NI* sl);
340 static N_INLINE(NI, lsbit__system_3827)(NU32 x);
341 N_LIB_PRIVATE N_NIMCALL(tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*, requestOsChunks__system_4430)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, NI size);
342 static N_INLINE(void*, osAllocPages__system_3716)(NI size);
343 N_LIB_PRIVATE N_NOINLINE(void, raiseOutOfMem__system_3691)(void);
344 static N_INLINE(void, rawWrite)(FILE* f, NCSTRING s);
345 static N_INLINE(NI, nimCStrLen)(NCSTRING a);
346 static N_INLINE(void*, osTryAllocPages__system_3719)(NI size);
347 static N_INLINE(void, incCurrMem__system_3959)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, NI bytes);
348 N_LIB_PRIVATE N_NIMCALL(void, addHeapLink__system_4043)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* p, NI size);
349 N_LIB_PRIVATE N_NIMCALL(void*, llAlloc__system_3976)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, NI size);
350 static N_INLINE(void, zeroMem__system_1724)(void* p, NI size);
351 static N_INLINE(void, nimZeroMem)(void* p, NI size);
352 static N_INLINE(void, nimSetMem__systemZmemory_7)(void* a, int v, NI size);
353 static N_INLINE(NI, pluspercent___system_696)(NI x, NI y);
354 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, contains__system_4225)(tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA* s, NI key);
355 N_LIB_PRIVATE N_NIMCALL(tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw*, intSetGet__system_4186)(tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA* t, NI key);
356 static N_INLINE(NI, pageIndex__system_4412)(tyObject_BaseChunk__Sdq7WpT6qAH858F5ZEdG3w* c);
357 static N_INLINE(NI, minuspercent___system_716)(NI x, NI y);
358 N_LIB_PRIVATE N_NIMCALL(void, splitChunk__system_4481)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* c, NI size);
359 N_LIB_PRIVATE N_NIMCALL(tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*, splitChunk2__system_4476)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* c, NI size);
360 static N_INLINE(void, updatePrevSize__system_4471)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* c, NI prevSize);
361 static N_INLINE(NIM_BOOL, isAccessible__system_4453)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, void* p);
362 static N_INLINE(NI, pageIndex__system_4419)(void* p);
363 N_LIB_PRIVATE N_NIMCALL(void, incl__system_4247)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA* s, NI key);
364 N_LIB_PRIVATE N_NIMCALL(tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw*, intSetPut__system_4208)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA* t, NI key);
365 N_LIB_PRIVATE N_NIMCALL(void, addChunkToMatrix__system_3950)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* b);
366 static N_INLINE(tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ, mappingInsert__system_3862)(NI r);
367 static N_INLINE(void, setBit__system_3830)(NI nr, NU32* dest);
368 N_LIB_PRIVATE N_NIMCALL(void, removeChunkFromMatrix2__system_3941)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* b, NI fl, NI sl);
369 static N_INLINE(void, clearBit__system_3837)(NI nr, NU32* dest);
370 static N_INLINE(void, listAdd__system_4568)(tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ** head, tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ* c);
371 static N_INLINE(void, listRemove__system_4621)(tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ** head, tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ* c);
372 N_LIB_PRIVATE N_NIMCALL(tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*, getHugeChunk__system_4522)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, NI size);
373 N_LIB_PRIVATE N_NIMCALL(tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw*, getBottom__system_4002)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a);
374 N_LIB_PRIVATE N_NIMCALL(void, add__system_4149)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw** t, NI key, NI upperBound);
375 N_LIB_PRIVATE N_NIMCALL(tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw*, allocAvlNode__system_4018)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, NI key, NI upperBound);
376 static N_INLINE(NIM_BOOL, ltpercent___system_1005)(NI x, NI y);
377 N_LIB_PRIVATE N_NIMCALL(void, skew__system_4139)(tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw** t);
378 N_LIB_PRIVATE N_NIMCALL(void, split__system_4142)(tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw** t);
379 N_LIB_PRIVATE N_NIMCALL(void, init__system_4883)(tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ* s);
380 static N_INLINE(NI, atomicInc__system_2172)(NI* memLoc, NI x);
381 static N_NIMCALL(void, Marker_tySequence__uB9b75OUPRENsBAu4AnoePA)(void* p, NI op);
382 N_LIB_PRIVATE N_NIMCALL(void, nimGCvisit)(void* d, NI op);
383 N_LIB_PRIVATE N_NIMCALL(void, doOperation__system_5293)(void* p, tyEnum_WalkOp__Wfy7gT5VQ8B3aJBxqU8D9cQ op);
384 static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__system_5262)(void* usr);
385 static N_INLINE(void, decRef__system_5307)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
386 static N_INLINE(void, rtlAddZCT__system_5305)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
387 N_LIB_PRIVATE N_NOINLINE(void, addZCT__system_5256)(tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w* s, tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
388 static N_INLINE(void, add__system_4851)(tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w* s, tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
389 N_LIB_PRIVATE N_NOCONV(void*, allocImpl__system_1743)(NI size);
390 static N_INLINE(void, copyMem__system_1727)(void* dest, void* source, NI size);
391 static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size);
392 N_LIB_PRIVATE N_NOCONV(void, dealloc)(void* p);
393 N_LIB_PRIVATE N_NOCONV(void, deallocImpl__system_1747)(void* p);
394 N_LIB_PRIVATE N_NIMCALL(void, dealloc__system_4775)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* allocator, void* p);
395 N_LIB_PRIVATE N_NIMCALL(void, rawDealloc__system_4680)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, void* p);
396 static N_INLINE(tyObject_BaseChunk__Sdq7WpT6qAH858F5ZEdG3w*, pageAddr__system_4426)(void* p);
397 static N_INLINE(NIM_BOOL, isSmallChunk__system_4337)(tyObject_BaseChunk__Sdq7WpT6qAH858F5ZEdG3w* c);
398 N_LIB_PRIVATE N_NIMCALL(void, freeBigChunk__system_4486)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* c);
399 static N_INLINE(NIM_BOOL, chunkUnused__system_4343)(tyObject_BaseChunk__Sdq7WpT6qAH858F5ZEdG3w* c);
400 N_LIB_PRIVATE N_NIMCALL(void, removeChunkFromMatrix__system_3911)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* b);
401 N_LIB_PRIVATE N_NIMCALL(void, excl__system_4269)(tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA* s, NI key);
402 N_LIB_PRIVATE N_NIMCALL(void, del__system_4158)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw** t, NI x);
403 static N_INLINE(void, deallocAvlNode__system_4040)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* n);
404 N_LIB_PRIVATE N_NIMCALL(void, freeHugeChunk__system_4526)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* c);
405 static N_INLINE(void, decCurrMem__system_3966)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, NI bytes);
406 static N_INLINE(void, osDeallocPages__system_3722)(void* p, NI size);
407 N_LIB_PRIVATE N_NIMCALL(void, markS__system_5711)(tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ* gch, tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
408 N_LIB_PRIVATE N_NIMCALL(void, incl__system_5008)(tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ* s, tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* cell);
409 N_LIB_PRIVATE N_NIMCALL(tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg*, cellSetPut__system_4954)(tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ* t, NU key);
410 static N_INLINE(NI, nextTry__system_4911)(NI h, NI maxHash);
411 N_LIB_PRIVATE N_NIMCALL(void, cellSetEnlarge__system_4941)(tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ* t);
412 N_LIB_PRIVATE N_NIMCALL(void, cellSetRawInsert__system_4924)(tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ t, tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg** data, tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg* desc);
413 N_LIB_PRIVATE N_NIMCALL(void, forAllChildren__system_5290)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* cell, tyEnum_WalkOp__Wfy7gT5VQ8B3aJBxqU8D9cQ op);
414 static N_INLINE(void*, cellToUsr__system_5259)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* cell);
415 N_LIB_PRIVATE N_NIMCALL(void, forAllChildrenAux__system_5296)(void* dest, TNimType* mt, tyEnum_WalkOp__Wfy7gT5VQ8B3aJBxqU8D9cQ op);
416 N_LIB_PRIVATE N_NIMCALL(void, forAllSlotsAux__system_5527)(void* dest, TNimNode* n, tyEnum_WalkOp__Wfy7gT5VQ8B3aJBxqU8D9cQ op);
417 N_LIB_PRIVATE N_NIMCALL(TNimNode*, selectBranch__system_3645)(void* aa, TNimNode* n);
418 N_LIB_PRIVATE N_NIMCALL(NU, getDiscriminant__system_3607)(void* aa, TNimNode* n);
419 static N_INLINE(NI, starpercent___system_736)(NI x, NI y);
420 N_LIB_PRIVATE N_NIMCALL(NI, align__system_1624)(NI address, NI alignment);
421 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, containsOrIncl__system_5054)(tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ* s, tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* cell);
422 N_LIB_PRIVATE N_NIMCALL(tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg*, cellSetGet__system_4915)(tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ t, NU key);
423 static N_NIMCALL(void, Marker_tyRef__vU9aO9cTqOMn6CBzhV8rX7Sw)(void* p, NI op);
424 static N_NIMCALL(void, TM__Q5wkpxktOdTGvlSRo9bzt9aw_4)(void);
425 N_LIB_PRIVATE N_NIMCALL(void, nimRegisterThreadLocalMarker)(tyProc__T4eqaYlFJYZUv9aG9b1TV0bQ markerProc);
426 N_LIB_PRIVATE N_NOCONV(void, signalHandler)(int sign);
427 N_LIB_PRIVATE N_NIMCALL(void, showErrorMessage__system_2536)(NCSTRING data, NI length);
428 static N_INLINE(void, pushSafePoint)(TSafePoint* s);
429 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, cstrToNimstr)(NCSTRING str);
430 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, toNimStr)(NCSTRING str, NI len);
431 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, rawNewStringNoInit)(NI space);
432 N_LIB_PRIVATE N_NIMCALL(void*, newObjNoInit)(TNimType* typ, NI size);
433 N_LIB_PRIVATE N_NIMCALL(void*, rawNewObj__system_5639)(TNimType* typ, NI size, tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ* gch);
434 N_LIB_PRIVATE N_NIMCALL(void, collectCT__system_5286)(tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ* gch);
435 static N_INLINE(NI, getOccupiedMem__system_4811)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a);
436 N_LIB_PRIVATE N_NIMCALL(void, collectCTBody__system_5811)(tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ* gch);
437 N_LIB_PRIVATE N_NOINLINE(NI, stackSize__system_5380)(void);
438 N_LIB_PRIVATE N_NOINLINE(NI, stackSize__system_5376)(tyObject_GcStack__7fytPA5bBsob6See21YMRA* stack);
439 static N_INLINE(void, prepareForInteriorPointerChecking__system_4732)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a);
440 N_LIB_PRIVATE N_NIMCALL(NI, lowGauge__system_4099)(tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* n);
441 N_LIB_PRIVATE N_NIMCALL(NI, highGauge__system_4107)(tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* n);
442 CLANG_NO_SANITIZE_ADDRESS N_LIB_PRIVATE void markStackAndRegisters__system_5769(tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ* gch);
443 static N_INLINE(void, gcMark__system_5760)(tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ* gch, void* p);
444 N_LIB_PRIVATE N_NIMCALL(void*, interiorAllocatedPtr__system_4734)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, void* p);
445 static N_INLINE(NI, percentpercent___system_776)(NI x, NI y);
446 static N_INLINE(NIM_BOOL, lteqpercent___system_985)(NI x, NI y);
447 N_LIB_PRIVATE N_NIMCALL(tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw*, inRange__system_4127)(tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* root, NI key);
448 static N_INLINE(void, incRef__system_5300)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
449 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, collectZCT__system_5750)(tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ* gch);
450 N_LIB_PRIVATE N_NIMCALL(void, prepareDealloc__system_5422)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* cell);
451 N_LIB_PRIVATE N_NIMCALL(void, collectCycles__system_5752)(tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ* gch);
452 N_LIB_PRIVATE N_NIMCALL(void, cellsetReset__system_5525)(tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ* s);
453 N_LIB_PRIVATE N_NIMCALL(void, deinit__system_4903)(tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ* s);
454 N_LIB_PRIVATE N_NIMCALL(void, markGlobals__system_5719)(tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ* gch);
455 N_LIB_PRIVATE N_NIMCALL(void, sweep__system_5707)(tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ* gch);
456 static N_INLINE(NIM_BOOL, isCell__system_4400)(void* p);
457 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, contains__system_4976)(tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ s, tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* cell);
458 N_LIB_PRIVATE N_NIMCALL(void, freeCyclicCell__system_5703)(tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ* gch, tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
459 N_LIB_PRIVATE N_NIMCALL(NI, getOccupiedMem__system_1936)(void);
460 N_LIB_PRIVATE N_NIMCALL(void, unmarkStackAndRegisters__system_5803)(tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ* gch);
461 static N_INLINE(void, addNewObjToZCT__system_5624)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* res, tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ* gch);
462 static N_INLINE(void, popSafePoint)(void);
463 static N_INLINE(void, popCurrentException)(void);
464 static N_INLINE(void, asgnRef)(void** dest, void* src);
465 N_LIB_PRIVATE N_NIMCALL(void, reraiseException)(void);
466 static N_INLINE(void, sysFatal__system_2898)(NimStringDesc* message) __attribute__((noreturn));
467 static N_NIMCALL(void, Marker_tyRef__uG62cfJZ15c2siK3CKLmnQ)(void* p, NI op);
468 N_LIB_PRIVATE N_NOINLINE(void*, newObj)(TNimType* typ, NI size);
469 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, copyStringRC1)(NimStringDesc* src);
470 N_LIB_PRIVATE N_NOINLINE(void*, newObjRC1)(TNimType* typ, NI size);
471 static N_INLINE(void, nimGCunrefNoCycle)(void* p);
472 N_LIB_PRIVATE N_NIMCALL(void, raiseExceptionEx)(Exception* e, NCSTRING ename, NCSTRING procname, NCSTRING filename, NI line);
473 N_LIB_PRIVATE N_NIMCALL(TGenericSeq*, incrSeqV3)(TGenericSeq* s, TNimType* typ);
474 N_LIB_PRIVATE N_NIMCALL(void*, newSeq)(TNimType* typ, NI len);
475 N_LIB_PRIVATE N_NOINLINE(void, raiseOverflow)(void);
476 static N_INLINE(void, sysFatal__system_3375)(NimStringDesc* message) __attribute__((noreturn));
477 static N_NIMCALL(void, Marker_tyRef__r8GBEWywN07B3Rat3azS4Q)(void* p, NI op);
478 static N_INLINE(NI, resize__system_5866)(NI old);
479 N_LIB_PRIVATE N_NIMCALL(void*, dataPointer__system_5856)(TGenericSeq* a, NI elemAlign);
480 N_LIB_PRIVATE N_NIMCALL(void, raiseExceptionAux__system_2866)(Exception* e);
481 static N_INLINE(void, pushCurrentException)(Exception* e);
482 N_LIB_PRIVATE N_NIMCALL(void, reportUnhandledError__system_2855)(Exception* e);
483 N_LIB_PRIVATE N_NIMCALL(void, reportUnhandledErrorAux__system_2752)(Exception* e);
484 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___system_2723)(tySequence__uB9b75OUPRENsBAu4AnoePA* stackTraceEntries);
485 N_NIMCALL(NimStringDesc*, rawNewString)(NI cap);
486 static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src);
487 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, resizeString)(NimStringDesc* dest, NI addlen);
488 N_LIB_PRIVATE N_NIMCALL(void, add__system_2308)(NimStringDesc** x, NCSTRING y);
489 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, addChar)(NimStringDesc* s, NIM_CHAR c);
490 N_LIB_PRIVATE N_NIMCALL(void, unsureAsgnRef)(void** dest, void* src);
491 N_LIB_PRIVATE N_NOINLINE(NIM_BOOL, isOnStack__system_5288)(void* p);
492 N_LIB_PRIVATE N_NIMCALL(tyObject_GcStack__7fytPA5bBsob6See21YMRA*, getActiveStack__system_5398)(tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ* gch);
493 static N_INLINE(void, addInt__stdZprivateZdigitsutils_189)(NimStringDesc** result, NI x);
494 N_LIB_PRIVATE N_NIMCALL(void, addInt__stdZprivateZdigitsutils_167)(NimStringDesc** result, NI64 x);
495 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, mnewString)(NI len);
496 static N_INLINE(NCSTRING, nimToCStringConv)(NimStringDesc* s);
497 N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___systemZassertions_23)(NimStringDesc** dest);
498 N_LIB_PRIVATE N_NIMCALL(void, writeToStdErr__system_2531)(NCSTRING msg, NI length);
499 static N_INLINE(void, rawWriteString)(FILE* f, NCSTRING s, NI length);
500 N_LIB_PRIVATE N_NIMCALL(void, registerSignalHandler__system_2992)(void);
501 N_LIB_PRIVATE N_NIMCALL(NI, getRefcount)(void* p);
502 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___systemZdollars_3)(NI x);
503 static N_NIMCALL(void, Marker_tyRef__8SzoIAgLw9ci2v0yafHj9b6Q)(void* p, NI op);
504 N_LIB_PRIVATE N_NIMCALL(void*, dataPointer__system_5860)(TGenericSeq* a, NI elemAlign, NI elemSize, NI index);
505 N_LIB_PRIVATE N_NIMCALL(TNimType*, extGetCellType)(void* c);
506 static N_NIMCALL(void, Marker_tyRef__S8DV6hfcgC9c0IiUsAoR29cQ)(void* p, NI op);
507 N_NIMCALL(NimStringDesc*, mnewString)(NI len);
508 N_LIB_PRIVATE N_NIMCALL(NI, writeFloatToBufferRoundtrip__systemZformatfloat_13)(NIM_CHAR* buf, NF value);
509 N_LIB_PRIVATE N_NIMCALL(void, addCstringN__systemZformatfloat_5)(NimStringDesc** result, NCSTRING buf, NI buflen);
510 N_LIB_PRIVATE N_NIMCALL(void, genericAssign)(void* dest, void* src, TNimType* mt);
511 N_LIB_PRIVATE N_NIMCALL(void, genericAssignAux__system_6377)(void* dest, void* src, TNimType* mt, NIM_BOOL shallow);
512 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, copyString)(NimStringDesc* src);
513 N_LIB_PRIVATE N_NIMCALL(void*, nimNewSeqOfCap)(TNimType* typ, NI cap);
514 N_LIB_PRIVATE N_NIMCALL(void, genericAssignAux__system_6382)(void* dest, void* src, TNimNode* n, NIM_BOOL shallow);
515 N_LIB_PRIVATE N_NIMCALL(void, genericResetAux__system_6374)(void* dest, TNimNode* n);
516 N_LIB_PRIVATE N_NIMCALL(void, genericReset)(void* dest, TNimType* mt);
517 static N_INLINE(void, chckObjAsgn)(TNimType* a, TNimType* b);
518 static N_INLINE(void, sysFatal__system_3290)(NimStringDesc* message) __attribute__((noreturn));
519 static N_NIMCALL(void, Marker_tyRef__C0A9bPZSVeyr2BWpBf4Jxqw)(void* p, NI op);
520 static N_NIMCALL(void, Marker_tyRef__RJnHOb9cQV3neNC9cDkRgMyw)(void* p, NI op);
521 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, substr__system_7713)(NimStringDesc* s, NI first, NI last);
522 static N_NIMCALL(void, Marker_tyRef__Ie1m0dv1ZHg72IgPRr1cDw)(void* p, NI op);
523 static N_INLINE(int, nimCmpMem)(void* a, void* b, NI size);
524 static N_NIMCALL(void, Marker_tyRef__9clYsYwyjCqe2PFTuCI3Ubg)(void* p, NI op);
525 static N_NIMCALL(void, Marker_tyRef__HMIVdYjdZYWskTmTQVo5BQ)(void* p, NI op);
526 static N_INLINE(void, showErrorMessage2__system_2544)(NimStringDesc* data);
527 static N_NIMCALL(void, Marker_tyRef__LEclZrWX2FQAodlapxGITw)(void* p, NI op);
528 static N_NIMCALL(void, Marker_tyRef__0vJvi4uHbxjbxlkkX7P1EA)(void* p, NI op);
529 static N_INLINE(void, addFloat__system_3122)(NimStringDesc** result, NF x);
530 N_LIB_PRIVATE N_NIMCALL(void, addFloatRoundtrip__system_3127)(NimStringDesc** result, NF x);
531 N_LIB_PRIVATE N_NIMCALL(void, objectInitAux__system_6492)(void* dest, TNimNode* n);
532 N_LIB_PRIVATE N_NIMCALL(void, objectInit)(void* dest, TNimType* typ);
533 static N_NIMCALL(void, Marker_tyRef__9ai78kkwqt3gikTN9cpHKUVg)(void* p, NI op);
534 N_LIB_PRIVATE N_NIMCALL(NI, writeFloatToBufferRoundtrip__systemZformatfloat_44)(NIM_CHAR* buf, NF32 value);
535 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, setLengthStr)(NimStringDesc* s, NI newLen);
536 N_LIB_PRIVATE N_NIMCALL(NI, getMaxMem__system_3973)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a);
537 N_LIB_PRIVATE N_NIMCALL(NI, getTotalMem__system_1938)(void);
538 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___systemZdollars_6)(NI64 x);
539 static N_INLINE(void, initStackBottomWith)(void* locals);
540 N_LIB_PRIVATE NIM_CONST tyArray__mkmEeKAWtk2yS9bBb1lUWXA fsLookupTable__system_3818 = {((NI8) -1),
541 ((NI8) 0),
542 ((NI8) 1),
543 ((NI8) 1),
544 ((NI8) 2),
545 ((NI8) 2),
546 ((NI8) 2),
547 ((NI8) 2),
548 ((NI8) 3),
549 ((NI8) 3),
550 ((NI8) 3),
551 ((NI8) 3),
552 ((NI8) 3),
553 ((NI8) 3),
554 ((NI8) 3),
555 ((NI8) 3),
556 ((NI8) 4),
557 ((NI8) 4),
558 ((NI8) 4),
559 ((NI8) 4),
560 ((NI8) 4),
561 ((NI8) 4),
562 ((NI8) 4),
563 ((NI8) 4),
564 ((NI8) 4),
565 ((NI8) 4),
566 ((NI8) 4),
567 ((NI8) 4),
568 ((NI8) 4),
569 ((NI8) 4),
570 ((NI8) 4),
571 ((NI8) 4),
572 ((NI8) 5),
573 ((NI8) 5),
574 ((NI8) 5),
575 ((NI8) 5),
576 ((NI8) 5),
577 ((NI8) 5),
578 ((NI8) 5),
579 ((NI8) 5),
580 ((NI8) 5),
581 ((NI8) 5),
582 ((NI8) 5),
583 ((NI8) 5),
584 ((NI8) 5),
585 ((NI8) 5),
586 ((NI8) 5),
587 ((NI8) 5),
588 ((NI8) 5),
589 ((NI8) 5),
590 ((NI8) 5),
591 ((NI8) 5),
592 ((NI8) 5),
593 ((NI8) 5),
594 ((NI8) 5),
595 ((NI8) 5),
596 ((NI8) 5),
597 ((NI8) 5),
598 ((NI8) 5),
599 ((NI8) 5),
600 ((NI8) 5),
601 ((NI8) 5),
602 ((NI8) 5),
603 ((NI8) 5),
604 ((NI8) 6),
605 ((NI8) 6),
606 ((NI8) 6),
607 ((NI8) 6),
608 ((NI8) 6),
609 ((NI8) 6),
610 ((NI8) 6),
611 ((NI8) 6),
612 ((NI8) 6),
613 ((NI8) 6),
614 ((NI8) 6),
615 ((NI8) 6),
616 ((NI8) 6),
617 ((NI8) 6),
618 ((NI8) 6),
619 ((NI8) 6),
620 ((NI8) 6),
621 ((NI8) 6),
622 ((NI8) 6),
623 ((NI8) 6),
624 ((NI8) 6),
625 ((NI8) 6),
626 ((NI8) 6),
627 ((NI8) 6),
628 ((NI8) 6),
629 ((NI8) 6),
630 ((NI8) 6),
631 ((NI8) 6),
632 ((NI8) 6),
633 ((NI8) 6),
634 ((NI8) 6),
635 ((NI8) 6),
636 ((NI8) 6),
637 ((NI8) 6),
638 ((NI8) 6),
639 ((NI8) 6),
640 ((NI8) 6),
641 ((NI8) 6),
642 ((NI8) 6),
643 ((NI8) 6),
644 ((NI8) 6),
645 ((NI8) 6),
646 ((NI8) 6),
647 ((NI8) 6),
648 ((NI8) 6),
649 ((NI8) 6),
650 ((NI8) 6),
651 ((NI8) 6),
652 ((NI8) 6),
653 ((NI8) 6),
654 ((NI8) 6),
655 ((NI8) 6),
656 ((NI8) 6),
657 ((NI8) 6),
658 ((NI8) 6),
659 ((NI8) 6),
660 ((NI8) 6),
661 ((NI8) 6),
662 ((NI8) 6),
663 ((NI8) 6),
664 ((NI8) 6),
665 ((NI8) 6),
666 ((NI8) 6),
667 ((NI8) 6),
668 ((NI8) 7),
669 ((NI8) 7),
670 ((NI8) 7),
671 ((NI8) 7),
672 ((NI8) 7),
673 ((NI8) 7),
674 ((NI8) 7),
675 ((NI8) 7),
676 ((NI8) 7),
677 ((NI8) 7),
678 ((NI8) 7),
679 ((NI8) 7),
680 ((NI8) 7),
681 ((NI8) 7),
682 ((NI8) 7),
683 ((NI8) 7),
684 ((NI8) 7),
685 ((NI8) 7),
686 ((NI8) 7),
687 ((NI8) 7),
688 ((NI8) 7),
689 ((NI8) 7),
690 ((NI8) 7),
691 ((NI8) 7),
692 ((NI8) 7),
693 ((NI8) 7),
694 ((NI8) 7),
695 ((NI8) 7),
696 ((NI8) 7),
697 ((NI8) 7),
698 ((NI8) 7),
699 ((NI8) 7),
700 ((NI8) 7),
701 ((NI8) 7),
702 ((NI8) 7),
703 ((NI8) 7),
704 ((NI8) 7),
705 ((NI8) 7),
706 ((NI8) 7),
707 ((NI8) 7),
708 ((NI8) 7),
709 ((NI8) 7),
710 ((NI8) 7),
711 ((NI8) 7),
712 ((NI8) 7),
713 ((NI8) 7),
714 ((NI8) 7),
715 ((NI8) 7),
716 ((NI8) 7),
717 ((NI8) 7),
718 ((NI8) 7),
719 ((NI8) 7),
720 ((NI8) 7),
721 ((NI8) 7),
722 ((NI8) 7),
723 ((NI8) 7),
724 ((NI8) 7),
725 ((NI8) 7),
726 ((NI8) 7),
727 ((NI8) 7),
728 ((NI8) 7),
729 ((NI8) 7),
730 ((NI8) 7),
731 ((NI8) 7),
732 ((NI8) 7),
733 ((NI8) 7),
734 ((NI8) 7),
735 ((NI8) 7),
736 ((NI8) 7),
737 ((NI8) 7),
738 ((NI8) 7),
739 ((NI8) 7),
740 ((NI8) 7),
741 ((NI8) 7),
742 ((NI8) 7),
743 ((NI8) 7),
744 ((NI8) 7),
745 ((NI8) 7),
746 ((NI8) 7),
747 ((NI8) 7),
748 ((NI8) 7),
749 ((NI8) 7),
750 ((NI8) 7),
751 ((NI8) 7),
752 ((NI8) 7),
753 ((NI8) 7),
754 ((NI8) 7),
755 ((NI8) 7),
756 ((NI8) 7),
757 ((NI8) 7),
758 ((NI8) 7),
759 ((NI8) 7),
760 ((NI8) 7),
761 ((NI8) 7),
762 ((NI8) 7),
763 ((NI8) 7),
764 ((NI8) 7),
765 ((NI8) 7),
766 ((NI8) 7),
767 ((NI8) 7),
768 ((NI8) 7),
769 ((NI8) 7),
770 ((NI8) 7),
771 ((NI8) 7),
772 ((NI8) 7),
773 ((NI8) 7),
774 ((NI8) 7),
775 ((NI8) 7),
776 ((NI8) 7),
777 ((NI8) 7),
778 ((NI8) 7),
779 ((NI8) 7),
780 ((NI8) 7),
781 ((NI8) 7),
782 ((NI8) 7),
783 ((NI8) 7),
784 ((NI8) 7),
785 ((NI8) 7),
786 ((NI8) 7),
787 ((NI8) 7),
788 ((NI8) 7),
789 ((NI8) 7),
790 ((NI8) 7),
791 ((NI8) 7),
792 ((NI8) 7),
793 ((NI8) 7),
794 ((NI8) 7),
795 ((NI8) 7)}
796 ;
797 N_LIB_PRIVATE TNimType NTIrootobj__ytyiCJqK439aF9cIibuRVpAg_;
798 N_LIB_PRIVATE TNimType NTIexception__XEycrCsme5C8CVWAYEcdBQ_;
799 N_LIB_PRIVATE TNimType NTIcstring__S9agCYBinaYZnGWcjTdxclg_;
800 N_LIB_PRIVATE TNimType NTIstring__77mFvmsOLKik79ci2hXkHEg_;
801 N_LIB_PRIVATE TNimType NTIstacktraceentry__oLyohQ7O2XOvGnflOss8EA_;
802 N_LIB_PRIVATE TNimType NTIint__rR5Bzr1D5krxoo1NcNyeMA_;
803 N_LIB_PRIVATE TNimType NTIseqLstacktraceentryT__uB9b75OUPRENsBAu4AnoePA_;
804 N_LIB_PRIVATE TNimType NTIrefexception__vU9aO9cTqOMn6CBzhV8rX7Sw_;
805 N_LIB_PRIVATE TNimType NTIdefect__LbeSGvgPzGzXnW9caIkJqMA_;
806 N_LIB_PRIVATE TNimType NTIreraisedefect__E0L0wGYS1gPD81VLstNO2g_;
807 N_LIB_PRIVATE TNimType NTIrefreraisedefect__uG62cfJZ15c2siK3CKLmnQ_;
808 N_LIB_PRIVATE TNimType NTIarithmeticdefect__cT9c9bHlHSpA1QTnKbHjnIkA_;
809 N_LIB_PRIVATE TNimType NTIoverflowdefect__9cxMi1BPLc3UKt9br86bGfGQ_;
810 N_LIB_PRIVATE TNimType NTIrefoverflowdefect__r8GBEWywN07B3Rat3azS4Q_;
811 STRING_LITERAL(TM__Q5wkpxktOdTGvlSRo9bzt9aw_7, "over- or underflow", 18);
812 STRING_LITERAL(TM__Q5wkpxktOdTGvlSRo9bzt9aw_9, "[[reraised from:\012", 17);
813 STRING_LITERAL(TM__Q5wkpxktOdTGvlSRo9bzt9aw_10, "]]\012", 3);
814 STRING_LITERAL(TM__Q5wkpxktOdTGvlSRo9bzt9aw_11, "(", 1);
815 STRING_LITERAL(TM__Q5wkpxktOdTGvlSRo9bzt9aw_12, ", ", 2);
816 STRING_LITERAL(TM__Q5wkpxktOdTGvlSRo9bzt9aw_13, ")", 1);
817 STRING_LITERAL(TM__Q5wkpxktOdTGvlSRo9bzt9aw_14, "\012", 1);
818 STRING_LITERAL(TM__Q5wkpxktOdTGvlSRo9bzt9aw_15, "no exception to reraise", 23);
819 N_LIB_PRIVATE TNimType NTIbool__VaVACK0bpYmqIQ0mKcHfQQ_;
820 STRING_LITERAL(TM__Q5wkpxktOdTGvlSRo9bzt9aw_16, " (invalid data!)", 16);
821 N_LIB_PRIVATE TNimType NTIcatchableerror__qrLSDoe2oBoAqNtJ9badtnA_;
822 N_LIB_PRIVATE TNimType NTIvalueerror__yoNlBGx0D2tRizIdhQuENw_;
823 N_LIB_PRIVATE TNimType NTIkeyerror__t7nhKLvXTQS9cS8ByJU9bIag_;
824 N_LIB_PRIVATE TNimType NTIrefkeyerror__8SzoIAgLw9ci2v0yafHj9b6Q_;
825 N_LIB_PRIVATE TNimType NTIassertiondefect__PtYxPmY5X0dorfvxAFbJpQ_;
826 N_LIB_PRIVATE TNimType NTIrefassertiondefect__S8DV6hfcgC9c0IiUsAoR29cQ_;
827 N_LIB_PRIVATE TNimType NTIuint4954__M4na42GvebBMnI5wV9cYMxg_;
828 N_LIB_PRIVATE TNimType NTIint4954__kDPg4wXyR8DDyA0MeEjIsw_;
829 N_LIB_PRIVATE TNimType NTIint5150__sVg18TP9cLifHyygRe9cro9aA_;
830 N_LIB_PRIVATE TNimType NTIint56__chXunH2dwinSkhpA6JnsXw_;
831 N_LIB_PRIVATE TNimType NTIfloat__w9bl9a1ul9ctRJWiMl9cNnIMvg_;
832 N_LIB_PRIVATE TNimType NTIchar__nmiMWKVIe46vacnhAFrQvw_;
833 N_LIB_PRIVATE TNimType NTIobjectassignmentdefect__6toVe0IizlEwN9bORXEdX3g_;
834 N_LIB_PRIVATE TNimType NTIrefobjectassignmentdefect__C0A9bPZSVeyr2BWpBf4Jxqw_;
835 STRING_LITERAL(TM__Q5wkpxktOdTGvlSRo9bzt9aw_21, "invalid object assignment", 25);
836 N_LIB_PRIVATE TNimType NTIindexdefect__n6tGEPHKkh7E1AP9bj30WrQ_;
837 N_LIB_PRIVATE TNimType NTIrefindexdefect__RJnHOb9cQV3neNC9cDkRgMyw_;
838 N_LIB_PRIVATE TNimType NTIrefvalueerror__Ie1m0dv1ZHg72IgPRr1cDw_;
839 N_LIB_PRIVATE TNimType NTIoserror__BeJgrOdDsczOwEWOZbRfKA_;
840 N_LIB_PRIVATE TNimType NTIrefoserror__9clYsYwyjCqe2PFTuCI3Ubg_;
841 N_LIB_PRIVATE TNimType NTIioerror__iLZrPn9anoh9ad1MmO0RczFw_;
842 N_LIB_PRIVATE TNimType NTIrefioerror__HMIVdYjdZYWskTmTQVo5BQ_;
843 STRING_LITERAL(TM__Q5wkpxktOdTGvlSRo9bzt9aw_22, "No stack traceback available\012", 29);
844 N_LIB_PRIVATE TNimType NTIeoferror__KGSY1JdrNB7Xi8KDhXFhSg_;
845 N_LIB_PRIVATE TNimType NTIrefeoferror__LEclZrWX2FQAodlapxGITw_;
846 N_LIB_PRIVATE TNimType NTIbiggestint__Aav8dQoMlCFnZRxA0IhTHQ_;
847 N_LIB_PRIVATE TNimType NTIuint5150__JrFyJbYm9b5I4hJ9cWDqvfYA_;
848 N_LIB_PRIVATE TNimType NTIrootref__0vJvi4uHbxjbxlkkX7P1EA_;
849 N_LIB_PRIVATE TNimType NTIuint56__k3HXouOuhqAKq0dx450lXQ_;
850 N_LIB_PRIVATE NIM_CONST tyArray__yp9a149boki9cCCWgfXI0Ip4A powtens__system_6124 = {1.0,
851 10.0,
852 100.0,
853 1000.0,
854 10000.0,
855 100000.0,
856 1000000.0,
857 10000000.0,
858 100000000.0,
859 1000000000.0,
860 10000000000.0,
861 100000000000.0,
862 1000000000000.0,
863 10000000000000.0,
864 100000000000000.0,
865 1000000000000000.0,
866 10000000000000000.0,
867 1e+17,
868 1e+18,
869 1e+19,
870 1e+20,
871 1e+21,
872 1e+22}
873 ;
874 N_LIB_PRIVATE TNimType NTIrangedefect__Rp9adJYTsbbIUzQ8fWxwgdA_;
875 N_LIB_PRIVATE TNimType NTIint__xHTZrq9aYs6boc9bCba0JbpQ_;
876 N_LIB_PRIVATE TNimType NTIrefint__9ai78kkwqt3gikTN9cpHKUVg_;
877 N_LIB_PRIVATE TNimType NTIptrstring__Y36n7l9b7WX4rcaAYCe6LWw_;
878 N_LIB_PRIVATE TNimType NTIcint__nlCscttRCss70IBTyuBqnA_;
879 N_LIB_PRIVATE TNimType NTIdivbyzerodefect__n3A4gjRrFZBuNnTYx1h9a8w_;
880 STRING_LITERAL(TM__Q5wkpxktOdTGvlSRo9bzt9aw_23, "true", 4);
881 STRING_LITERAL(TM__Q5wkpxktOdTGvlSRo9bzt9aw_24, "false", 5);
882 N_LIB_PRIVATE TNimType NTIint__u50F0puw9b9c6p256tX4eJLQ_;
883 STRING_LITERAL(TM__Q5wkpxktOdTGvlSRo9bzt9aw_25, "[GC] total memory: ", 19);
884 STRING_LITERAL(TM__Q5wkpxktOdTGvlSRo9bzt9aw_26, "\012[GC] occupied memory: ", 23);
885 STRING_LITERAL(TM__Q5wkpxktOdTGvlSRo9bzt9aw_27, "\012[GC] stack scans: ", 19);
886 STRING_LITERAL(TM__Q5wkpxktOdTGvlSRo9bzt9aw_28, "\012[GC] stack cells: ", 19);
887 STRING_LITERAL(TM__Q5wkpxktOdTGvlSRo9bzt9aw_29, "\012[GC] cycle collections: ", 25);
888 STRING_LITERAL(TM__Q5wkpxktOdTGvlSRo9bzt9aw_30, "\012[GC] max threshold: ", 21);
889 STRING_LITERAL(TM__Q5wkpxktOdTGvlSRo9bzt9aw_31, "\012[GC] zct capacity: ", 20);
890 STRING_LITERAL(TM__Q5wkpxktOdTGvlSRo9bzt9aw_32, "\012[GC] max cycle table size: ", 28);
891 STRING_LITERAL(TM__Q5wkpxktOdTGvlSRo9bzt9aw_33, "\012[GC] max pause time [ms]: ", 27);
892 STRING_LITERAL(TM__Q5wkpxktOdTGvlSRo9bzt9aw_34, "[GC] max stack size: ", 21);
893 N_LIB_PRIVATE NI nim_program_result;
894 N_LIB_PRIVATE tyProc__9axCnCRMUx32AHzFgBrzSMg globalRaiseHook__system_2291;
895 N_LIB_PRIVATE tyProc__9axCnCRMUx32AHzFgBrzSMg localRaiseHook__system_2294;
896 N_LIB_PRIVATE tyProc__T4eqaYlFJYZUv9aG9b1TV0bQ outOfMemHook__system_2296;
897 N_LIB_PRIVATE tyProc__NFmM6mqUOVW3cJg4yvk8Fw unhandledExceptionHook__system_2299;
898 N_LIB_PRIVATE TNimType strDesc__system_2412 = {((NI) 4), 0, ((tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A) 28), 2, NIM_NIL, NIM_NIL, NIM_NIL, NIM_NIL, NIM_NIL}
899 ;
900 N_LIB_PRIVATE tyProc__W6IXMh2CA4X1rFYGjUb4yg errorMessageWriter__system_2528;
901 N_LIB_PRIVATE TFrame* framePtr__system_2564;
902 N_LIB_PRIVATE TSafePoint* excHandler__system_2565;
903 N_LIB_PRIVATE Exception* currException__system_2566;
904 N_LIB_PRIVATE GcFrameHeader* gcFramePtr__system_2567;
905 N_LIB_PRIVATE tyProc__W6IXMh2CA4X1rFYGjUb4yg onUnhandledException__system_2751;
906 N_LIB_PRIVATE tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ gch__system_5209;
907 N_LIB_PRIVATE NI globalMarkersLen;
908 N_LIB_PRIVATE tyArray__9aTRall1siQT9bXabu2aKXUg globalMarkers;
909 N_LIB_PRIVATE NI threadLocalMarkersLen;
910 N_LIB_PRIVATE tyArray__9aTRall1siQT9bXabu2aKXUg threadLocalMarkers;
911 N_LIB_PRIVATE NI gHeapidGenerator__system_5476;
N_NIMCALL(void,setPosition__system_5395)912 N_LIB_PRIVATE N_NIMCALL(void, setPosition__system_5395)(tyObject_GcStack__7fytPA5bBsob6See21YMRA* stack, void* position) {
913 }
N_NOINLINE(void,nimGC_setStackBottom)914 N_LIB_PRIVATE N_NOINLINE(void, nimGC_setStackBottom)(void* theStackBottom) {
915 	{
916 		if (!(gch__system_5209.stack.bottom == NIM_NIL)) goto LA3_;
917 		gch__system_5209.stack.bottom = theStackBottom;
918 	}
919 	goto LA1_;
920 	LA3_: ;
921 	{
922 		NI a;
923 		NI b;
924 		if (!!((theStackBottom == gch__system_5209.stack.bottom))) goto LA6_;
925 		a = ((NI) (ptrdiff_t) (theStackBottom));
926 		b = ((NI) (ptrdiff_t) (gch__system_5209.stack.bottom));
927 		gch__system_5209.stack.bottom = ((void*) (((a >= b) ? a : b)));
928 	}
929 	goto LA1_;
930 	LA6_: ;
931 	LA1_: ;
932 	setPosition__system_5395((&gch__system_5209.stack), theStackBottom);
933 }
N_INLINE(void,initStackBottom)934 static N_INLINE(void, initStackBottom)(void) {
935 	void* volatile locals;
936 	locals = ((void*) ((&locals)));
937 	nimGC_setStackBottom(locals);
938 }
N_INLINE(NI,roundup__system_3696)939 static N_INLINE(NI, roundup__system_3696)(NI x, NI v) {
940 	NI result;
941 	result = (NI)0;
942 	result = (NI)((NI)(x + (NI)(v - ((NI) 1))) & (NI)((NU32) ~((NI)(v - ((NI) 1)))));
943 	return result;
944 }
N_INLINE(NI,msbit__system_3819)945 static N_INLINE(NI, msbit__system_3819)(NU32 x) {
946 	NI result;
947 	NI a;
948 	result = (NI)0;
949 	{
950 		if (!((NU32)(x) <= (NU32)(((NU32) 65535)))) goto LA3_;
951 		{
952 			if (!((NU32)(x) <= (NU32)(((NU32) 255)))) goto LA7_;
953 			a = ((NI) 0);
954 		}
955 		goto LA5_;
956 		LA7_: ;
957 		{
958 			a = ((NI) 8);
959 		}
960 		LA5_: ;
961 	}
962 	goto LA1_;
963 	LA3_: ;
964 	{
965 		{
966 			if (!((NU32)(x) <= (NU32)(((NU32) 16777215)))) goto LA13_;
967 			a = ((NI) 16);
968 		}
969 		goto LA11_;
970 		LA13_: ;
971 		{
972 			a = ((NI) 24);
973 		}
974 		LA11_: ;
975 	}
976 	LA1_: ;
977 	result = (NI)(((NI) (fsLookupTable__system_3818[((NU32)((NU32)(x) >> (NU32)(a)))- 0])) + a);
978 	return result;
979 }
N_INLINE(void,mappingSearch__system_3844)980 static N_INLINE(void, mappingSearch__system_3844)(NI* r, NI* fl, NI* sl) {
981 	NI t;
982 	NI T1_;
983 	NI T2_;
984 	T1_ = (NI)0;
985 	T1_ = msbit__system_3819(((NU32) ((*r))));
986 	T2_ = (NI)0;
987 	T2_ = roundup__system_3696((NI)((NU32)(((NI) 1)) << (NU32)((NI)(T1_ - ((NI) 5)))), ((NI) 4096));
988 	t = (NI)(T2_ - ((NI) 1));
989 	(*r) = (NI)((*r) + t);
990 	(*r) = (NI)((*r) & (NI)((NU32) ~(t)));
991 	(*r) = (((*r) <= ((NI) 1056964608)) ? (*r) : ((NI) 1056964608));
992 	(*fl) = msbit__system_3819(((NU32) ((*r))));
993 	(*sl) = (NI)((NI)((NI32)((*r)) >> (NU32)((NI)((*fl) - ((NI) 5)))) - ((NI) 32));
994 	(*fl) -= ((NI) 6);
995 }
N_INLINE(NI,lsbit__system_3827)996 static N_INLINE(NI, lsbit__system_3827)(NU32 x) {
997 	NI result;
998 	result = (NI)0;
999 	result = msbit__system_3819((NU32)(x & (NU32)((NU32)((NU32)((NU32) ~(x))) + (NU32)(((NU32) 1)))));
1000 	return result;
1001 }
N_INLINE(tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg *,findSuitableBlock__system_3876)1002 static N_INLINE(tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*, findSuitableBlock__system_3876)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, NI* fl, NI* sl) {
1003 	tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* result;
1004 	NU32 tmp;
1005 	result = (tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*)0;
1006 	tmp = (NU32)((*a).slBitmap[((*fl))- 0] & (NU32)((NU32)(((NU32) IL64(4294967295))) << (NU32)((*sl))));
1007 	result = ((tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*) NIM_NIL);
1008 	{
1009 		if (!!((tmp == ((NU32) 0)))) goto LA3_;
1010 		(*sl) = lsbit__system_3827(tmp);
1011 		result = (*a).matrix[((*fl))- 0][((*sl))- 0];
1012 	}
1013 	goto LA1_;
1014 	LA3_: ;
1015 	{
1016 		(*fl) = lsbit__system_3827((NU32)((*a).flBitmap & (NU32)((NU32)(((NU32) IL64(4294967295))) << (NU32)((NI)((*fl) + ((NI) 1))))));
1017 		{
1018 			if (!(((NI) 0) < (*fl))) goto LA8_;
1019 			(*sl) = lsbit__system_3827((*a).slBitmap[((*fl))- 0]);
1020 			result = (*a).matrix[((*fl))- 0][((*sl))- 0];
1021 		}
1022 		LA8_: ;
1023 	}
1024 	LA1_: ;
1025 	return result;
1026 }
N_INLINE(NI,nimCStrLen)1027 static N_INLINE(NI, nimCStrLen)(NCSTRING a) {
1028 	NI result;
1029 	size_t T1_;
1030 	result = (NI)0;
1031 	T1_ = (size_t)0;
1032 	T1_ = strlen(a);
1033 	result = ((NI) (T1_));
1034 	return result;
1035 }
N_INLINE(void,rawWrite)1036 static N_INLINE(void, rawWrite)(FILE* f, NCSTRING s) {
1037 	int T1_;
1038 	int T2_;
1039 	T1_ = (int)0;
1040 	T1_ = fwrite(((void*) (s)), ((size_t) 1), ((size_t) ((s ? nimCStrLen(s) : 0))), f);
1041 	(void)(T1_);
1042 	T2_ = (int)0;
1043 	T2_ = fflush(f);
1044 	(void)(T2_);
1045 }
N_NOINLINE(void,raiseOutOfMem__system_3691)1046 N_LIB_PRIVATE N_NOINLINE(void, raiseOutOfMem__system_3691)(void) {
1047 	{
1048 		if (!!((outOfMemHook__system_2296 == NIM_NIL))) goto LA3_;
1049 		outOfMemHook__system_2296();
1050 	}
1051 	LA3_: ;
1052 	rawWrite(stderr, "out of memory\012");
1053 	exit(((NI) 1));
1054 }
N_INLINE(void *,osAllocPages__system_3716)1055 static N_INLINE(void*, osAllocPages__system_3716)(NI size) {
1056 	void* result;
1057 	result = (void*)0;
1058 	result = mmap(NIM_NIL, ((size_t) (size)), ((int) 3), ((int) 258), ((int) -1), ((NI) 0));
1059 	{
1060 		NIM_BOOL T3_;
1061 		T3_ = (NIM_BOOL)0;
1062 		T3_ = (result == NIM_NIL);
1063 		if (T3_) goto LA4_;
1064 		T3_ = (result == ((void*) (((NI) -1))));
1065 		LA4_: ;
1066 		if (!T3_) goto LA5_;
1067 		raiseOutOfMem__system_3691();
1068 	}
1069 	LA5_: ;
1070 	return result;
1071 }
N_INLINE(void *,osTryAllocPages__system_3719)1072 static N_INLINE(void*, osTryAllocPages__system_3719)(NI size) {
1073 	void* result;
1074 	result = (void*)0;
1075 	result = mmap(NIM_NIL, ((size_t) (size)), ((int) 3), ((int) 258), ((int) -1), ((NI) 0));
1076 	{
1077 		if (!(result == ((void*) (((NI) -1))))) goto LA3_;
1078 		result = NIM_NIL;
1079 	}
1080 	LA3_: ;
1081 	return result;
1082 }
N_INLINE(void,incCurrMem__system_3959)1083 static N_INLINE(void, incCurrMem__system_3959)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, NI bytes) {
1084 	(*a).currMem += bytes;
1085 }
N_INLINE(void,nimSetMem__systemZmemory_7)1086 static N_INLINE(void, nimSetMem__systemZmemory_7)(void* a, int v, NI size) {
1087 	void* T1_;
1088 	T1_ = (void*)0;
1089 	T1_ = memset(a, v, ((size_t) (size)));
1090 }
N_INLINE(void,nimZeroMem)1091 static N_INLINE(void, nimZeroMem)(void* p, NI size) {
1092 	nimSetMem__systemZmemory_7(p, ((int) 0), size);
1093 }
N_INLINE(void,zeroMem__system_1724)1094 static N_INLINE(void, zeroMem__system_1724)(void* p, NI size) {
1095 	nimZeroMem(p, size);
1096 }
N_NIMCALL(void *,llAlloc__system_3976)1097 N_LIB_PRIVATE N_NIMCALL(void*, llAlloc__system_3976)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, NI size) {
1098 	void* result;
1099 	result = (void*)0;
1100 	{
1101 		NIM_BOOL T3_;
1102 		tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw* old;
1103 		void* T7_;
1104 		T3_ = (NIM_BOOL)0;
1105 		T3_ = ((*a).llmem == ((tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw*) NIM_NIL));
1106 		if (T3_) goto LA4_;
1107 		T3_ = ((*(*a).llmem).size < size);
1108 		LA4_: ;
1109 		if (!T3_) goto LA5_;
1110 		old = (*a).llmem;
1111 		T7_ = (void*)0;
1112 		T7_ = osAllocPages__system_3716(((NI) 4096));
1113 		(*a).llmem = ((tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw*) (T7_));
1114 		incCurrMem__system_3959(a, ((NI) 4096));
1115 		(*(*a).llmem).size = ((NI) 4084);
1116 		(*(*a).llmem).acc = ((NI) 12);
1117 		(*(*a).llmem).next = old;
1118 	}
1119 	LA5_: ;
1120 	result = ((void*) ((NI)(((NI) (ptrdiff_t) ((*a).llmem)) + (*(*a).llmem).acc)));
1121 	(*(*a).llmem).size -= size;
1122 	(*(*a).llmem).acc += size;
1123 	zeroMem__system_1724(result, ((NI) (size)));
1124 	return result;
1125 }
N_NIMCALL(void,addHeapLink__system_4043)1126 N_LIB_PRIVATE N_NIMCALL(void, addHeapLink__system_4043)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* p, NI size) {
1127 	tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg* it;
1128 	it = (&(*a).heapLinks);
1129 	{
1130 		while (1) {
1131 			NIM_BOOL T3_;
1132 			T3_ = (NIM_BOOL)0;
1133 			T3_ = !((it == ((tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg*) NIM_NIL)));
1134 			if (!(T3_)) goto LA4_;
1135 			T3_ = (((NI) 30) <= (*it).len);
1136 			LA4_: ;
1137 			if (!T3_) goto LA2;
1138 			it = (*it).next;
1139 		} LA2: ;
1140 	}
1141 	{
1142 		tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg* n;
1143 		void* T9_;
1144 		tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* colontmp_;
1145 		NI colontmp__2;
1146 		if (!(it == ((tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg*) NIM_NIL))) goto LA7_;
1147 		T9_ = (void*)0;
1148 		T9_ = llAlloc__system_3976(a, ((NI) 248));
1149 		n = ((tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg*) (T9_));
1150 		(*n).next = (*a).heapLinks.next;
1151 		(*a).heapLinks.next = n;
1152 		colontmp_ = p;
1153 		colontmp__2 = size;
1154 		(*n).chunks[(((NI) 0))- 0].Field0 = colontmp_;
1155 		(*n).chunks[(((NI) 0))- 0].Field1 = colontmp__2;
1156 		(*n).len = ((NI) 1);
1157 	}
1158 	goto LA5_;
1159 	LA7_: ;
1160 	{
1161 		NI L;
1162 		tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* colontmp__3;
1163 		NI colontmp__4;
1164 		L = (*it).len;
1165 		colontmp__3 = p;
1166 		colontmp__4 = size;
1167 		(*it).chunks[(L)- 0].Field0 = colontmp__3;
1168 		(*it).chunks[(L)- 0].Field1 = colontmp__4;
1169 		(*it).len += ((NI) 1);
1170 	}
1171 	LA5_: ;
1172 }
N_INLINE(NI,pluspercent___system_696)1173 static N_INLINE(NI, pluspercent___system_696)(NI x, NI y) {
1174 	NI result;
1175 	result = (NI)0;
1176 	result = ((NI) ((NU)((NU32)(((NU) (x))) + (NU32)(((NU) (y))))));
1177 	return result;
1178 }
N_NIMCALL(tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw *,intSetGet__system_4186)1179 N_LIB_PRIVATE N_NIMCALL(tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw*, intSetGet__system_4186)(tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA* t, NI key) {
1180 	tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw* result;
1181 	tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw* it;
1182 {	result = (tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw*)0;
1183 	it = (*t).data[((NI)(key & ((NI) 255)))- 0];
1184 	{
1185 		while (1) {
1186 			if (!!((it == ((tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw*) NIM_NIL)))) goto LA2;
1187 			{
1188 				if (!((*it).key == key)) goto LA5_;
1189 				result = it;
1190 				goto BeforeRet_;
1191 			}
1192 			LA5_: ;
1193 			it = (*it).next;
1194 		} LA2: ;
1195 	}
1196 	result = ((tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw*) NIM_NIL);
1197 	}BeforeRet_: ;
1198 	return result;
1199 }
N_NIMCALL(NIM_BOOL,contains__system_4225)1200 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, contains__system_4225)(tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA* s, NI key) {
1201 	NIM_BOOL result;
1202 	tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw* t;
1203 	result = (NIM_BOOL)0;
1204 	t = intSetGet__system_4186(s, (NI)((NI32)(key) >> (NU32)(((NI) 9))));
1205 	{
1206 		NI u;
1207 		if (!!((t == ((tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw*) NIM_NIL)))) goto LA3_;
1208 		u = (NI)(key & ((NI) 511));
1209 		result = !(((NU)((*t).bits[((NI)((NI32)(u) >> (NU32)(((NI) 5))))- 0] & (NU)((NU32)(((NU) 1)) << (NU32)((NI)(u & ((NI) 31))))) == ((NU) 0)));
1210 	}
1211 	goto LA1_;
1212 	LA3_: ;
1213 	{
1214 		result = NIM_FALSE;
1215 	}
1216 	LA1_: ;
1217 	return result;
1218 }
N_INLINE(NI,pageIndex__system_4412)1219 static N_INLINE(NI, pageIndex__system_4412)(tyObject_BaseChunk__Sdq7WpT6qAH858F5ZEdG3w* c) {
1220 	NI result;
1221 	result = (NI)0;
1222 	result = (NI)((NI32)(((NI) (ptrdiff_t) (c))) >> (NU32)(((NI) 12)));
1223 	return result;
1224 }
N_INLINE(NI,minuspercent___system_716)1225 static N_INLINE(NI, minuspercent___system_716)(NI x, NI y) {
1226 	NI result;
1227 	result = (NI)0;
1228 	result = ((NI) ((NU)((NU32)(((NU) (x))) - (NU32)(((NU) (y))))));
1229 	return result;
1230 }
N_NIMCALL(tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg *,requestOsChunks__system_4430)1231 N_LIB_PRIVATE N_NIMCALL(tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*, requestOsChunks__system_4430)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, NI size) {
1232 	tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* result;
1233 	NI size_2;
1234 	NI nxt;
1235 	tyObject_BaseChunk__Sdq7WpT6qAH858F5ZEdG3w* next;
1236 	NI lastSize;
1237 	NI prv;
1238 	tyObject_BaseChunk__Sdq7WpT6qAH858F5ZEdG3w* prev;
1239 	result = (tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*)0;
1240 	{
1241 		NI usedMem;
1242 		if (!!((*a).blockChunkSizeIncrease)) goto LA3_;
1243 		usedMem = (*a).occ;
1244 		{
1245 			if (!(usedMem < ((NI) 65536))) goto LA7_;
1246 			(*a).nextChunkSize = ((NI) 16384);
1247 		}
1248 		goto LA5_;
1249 		LA7_: ;
1250 		{
1251 			NI T10_;
1252 			T10_ = (NI)0;
1253 			T10_ = roundup__system_3696((NI)((NI32)(usedMem) >> (NU32)(((NI) 2))), ((NI) 4096));
1254 			(*a).nextChunkSize = ((T10_ <= (NI)((*a).nextChunkSize * ((NI) 2))) ? T10_ : (NI)((*a).nextChunkSize * ((NI) 2)));
1255 			(*a).nextChunkSize = (((*a).nextChunkSize <= ((NI) 1056964608)) ? (*a).nextChunkSize : ((NI) 1056964608));
1256 		}
1257 		LA5_: ;
1258 	}
1259 	LA3_: ;
1260 	size_2 = size;
1261 	{
1262 		void* T15_;
1263 		if (!((*a).nextChunkSize < size_2)) goto LA13_;
1264 		T15_ = (void*)0;
1265 		T15_ = osAllocPages__system_3716(size_2);
1266 		result = ((tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*) (T15_));
1267 	}
1268 	goto LA11_;
1269 	LA13_: ;
1270 	{
1271 		void* T17_;
1272 		T17_ = (void*)0;
1273 		T17_ = osTryAllocPages__system_3719((*a).nextChunkSize);
1274 		result = ((tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*) (T17_));
1275 		{
1276 			void* T22_;
1277 			if (!(result == ((tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*) NIM_NIL))) goto LA20_;
1278 			T22_ = (void*)0;
1279 			T22_ = osAllocPages__system_3716(size_2);
1280 			result = ((tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*) (T22_));
1281 			(*a).blockChunkSizeIncrease = NIM_TRUE;
1282 		}
1283 		goto LA18_;
1284 		LA20_: ;
1285 		{
1286 			size_2 = (*a).nextChunkSize;
1287 		}
1288 		LA18_: ;
1289 	}
1290 	LA11_: ;
1291 	incCurrMem__system_3959(a, size_2);
1292 	(*a).freeMem += size_2;
1293 	addHeapLink__system_4043(a, result, size_2);
1294 	(*result).next = ((tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*) NIM_NIL);
1295 	(*result).prev = ((tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*) NIM_NIL);
1296 	(*result).Sup.size = size_2;
1297 	nxt = pluspercent___system_696(((NI) (ptrdiff_t) (result)), size_2);
1298 	next = ((tyObject_BaseChunk__Sdq7WpT6qAH858F5ZEdG3w*) (nxt));
1299 	{
1300 		NI T26_;
1301 		NIM_BOOL T27_;
1302 		T26_ = (NI)0;
1303 		T26_ = pageIndex__system_4412(next);
1304 		T27_ = (NIM_BOOL)0;
1305 		T27_ = contains__system_4225((&(*a).chunkStarts), T26_);
1306 		if (!T27_) goto LA28_;
1307 		(*next).prevSize = (NI)(size_2 | (NI)((*next).prevSize & ((NI) 1)));
1308 	}
1309 	LA28_: ;
1310 	{
1311 		if (!!(((*a).lastSize == ((NI) 0)))) goto LA32_;
1312 		lastSize = (*a).lastSize;
1313 	}
1314 	goto LA30_;
1315 	LA32_: ;
1316 	{
1317 		lastSize = ((NI) 4096);
1318 	}
1319 	LA30_: ;
1320 	prv = minuspercent___system_716(((NI) (ptrdiff_t) (result)), lastSize);
1321 	prev = ((tyObject_BaseChunk__Sdq7WpT6qAH858F5ZEdG3w*) (prv));
1322 	{
1323 		NIM_BOOL T37_;
1324 		NI T38_;
1325 		T37_ = (NIM_BOOL)0;
1326 		T38_ = (NI)0;
1327 		T38_ = pageIndex__system_4412(prev);
1328 		T37_ = contains__system_4225((&(*a).chunkStarts), T38_);
1329 		if (!(T37_)) goto LA39_;
1330 		T37_ = ((*prev).size == lastSize);
1331 		LA39_: ;
1332 		if (!T37_) goto LA40_;
1333 		(*result).Sup.prevSize = (NI)(lastSize | (NI)((*result).Sup.prevSize & ((NI) 1)));
1334 	}
1335 	goto LA35_;
1336 	LA40_: ;
1337 	{
1338 		(*result).Sup.prevSize = (NI)(((NI) 0) | (NI)((*result).Sup.prevSize & ((NI) 1)));
1339 	}
1340 	LA35_: ;
1341 	(*a).lastSize = size_2;
1342 	return result;
1343 }
N_INLINE(NI,pageIndex__system_4419)1344 static N_INLINE(NI, pageIndex__system_4419)(void* p) {
1345 	NI result;
1346 	result = (NI)0;
1347 	result = (NI)((NI32)(((NI) (ptrdiff_t) (p))) >> (NU32)(((NI) 12)));
1348 	return result;
1349 }
N_INLINE(NIM_BOOL,isAccessible__system_4453)1350 static N_INLINE(NIM_BOOL, isAccessible__system_4453)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, void* p) {
1351 	NIM_BOOL result;
1352 	NI T1_;
1353 	result = (NIM_BOOL)0;
1354 	T1_ = (NI)0;
1355 	T1_ = pageIndex__system_4419(p);
1356 	result = contains__system_4225((&(*a).chunkStarts), T1_);
1357 	return result;
1358 }
N_INLINE(void,updatePrevSize__system_4471)1359 static N_INLINE(void, updatePrevSize__system_4471)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* c, NI prevSize) {
1360 	tyObject_BaseChunk__Sdq7WpT6qAH858F5ZEdG3w* ri;
1361 	NI T1_;
1362 	T1_ = (NI)0;
1363 	T1_ = pluspercent___system_696(((NI) (ptrdiff_t) (c)), (*c).Sup.size);
1364 	ri = ((tyObject_BaseChunk__Sdq7WpT6qAH858F5ZEdG3w*) (T1_));
1365 	{
1366 		NIM_BOOL T4_;
1367 		T4_ = (NIM_BOOL)0;
1368 		T4_ = isAccessible__system_4453((&(*a)), ((void*) (ri)));
1369 		if (!T4_) goto LA5_;
1370 		(*ri).prevSize = (NI)(prevSize | (NI)((*ri).prevSize & ((NI) 1)));
1371 	}
1372 	LA5_: ;
1373 }
N_NIMCALL(tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw *,intSetPut__system_4208)1374 N_LIB_PRIVATE N_NIMCALL(tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw*, intSetPut__system_4208)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA* t, NI key) {
1375 	tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw* result;
1376 	result = (tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw*)0;
1377 	result = intSetGet__system_4186((&(*t)), key);
1378 	{
1379 		void* T5_;
1380 		if (!(result == ((tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw*) NIM_NIL))) goto LA3_;
1381 		T5_ = (void*)0;
1382 		T5_ = llAlloc__system_3976(a, ((NI) 72));
1383 		result = ((tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw*) (T5_));
1384 		(*result).next = (*t).data[((NI)(key & ((NI) 255)))- 0];
1385 		(*t).data[((NI)(key & ((NI) 255)))- 0] = result;
1386 		(*result).key = key;
1387 	}
1388 	LA3_: ;
1389 	return result;
1390 }
N_NIMCALL(void,incl__system_4247)1391 N_LIB_PRIVATE N_NIMCALL(void, incl__system_4247)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA* s, NI key) {
1392 	tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw* t;
1393 	NI u;
1394 	t = intSetPut__system_4208(a, s, (NI)((NI32)(key) >> (NU32)(((NI) 9))));
1395 	u = (NI)(key & ((NI) 511));
1396 	(*t).bits[((NI)((NI32)(u) >> (NU32)(((NI) 5))))- 0] = (NU)((*t).bits[((NI)((NI32)(u) >> (NU32)(((NI) 5))))- 0] | (NU)((NU32)(((NU) 1)) << (NU32)((NI)(u & ((NI) 31)))));
1397 }
N_NIMCALL(tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg *,splitChunk2__system_4476)1398 N_LIB_PRIVATE N_NIMCALL(tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*, splitChunk2__system_4476)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* c, NI size) {
1399 	tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* result;
1400 	NI T1_;
1401 	NI T2_;
1402 	result = (tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*)0;
1403 	T1_ = (NI)0;
1404 	T1_ = pluspercent___system_696(((NI) (ptrdiff_t) (c)), size);
1405 	result = ((tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*) (T1_));
1406 	(*result).Sup.size = (NI)((*c).Sup.size - size);
1407 	(*result).next = ((tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*) NIM_NIL);
1408 	(*result).prev = ((tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*) NIM_NIL);
1409 	(*result).Sup.prevSize = size;
1410 	updatePrevSize__system_4471(a, c, (*result).Sup.size);
1411 	(*c).Sup.size = size;
1412 	T2_ = (NI)0;
1413 	T2_ = pageIndex__system_4412((*((tyObject_BaseChunk__Sdq7WpT6qAH858F5ZEdG3w**) (&(result)))));
1414 	incl__system_4247(a, (&(*a).chunkStarts), T2_);
1415 	return result;
1416 }
N_INLINE(tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ,mappingInsert__system_3862)1417 static N_INLINE(tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ, mappingInsert__system_3862)(NI r) {
1418 	tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ result;
1419 	nimZeroMem((void*)(&result), sizeof(tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ));
1420 	result.Field0 = msbit__system_3819(((NU32) (r)));
1421 	result.Field1 = (NI)((NI)((NI32)(r) >> (NU32)((NI)(result.Field0 - ((NI) 5)))) - ((NI) 32));
1422 	result.Field0 -= ((NI) 6);
1423 	return result;
1424 }
N_INLINE(void,setBit__system_3830)1425 static N_INLINE(void, setBit__system_3830)(NI nr, NU32* dest) {
1426 	(*dest) = (NU32)((*dest) | (NU32)((NU32)(((NU32) 1)) << (NU32)((NI)(nr & ((NI) 31)))));
1427 }
N_NIMCALL(void,addChunkToMatrix__system_3950)1428 N_LIB_PRIVATE N_NIMCALL(void, addChunkToMatrix__system_3950)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* b) {
1429 	tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ T1_;
1430 	NI fl;
1431 	NI sl;
1432 	T1_ = mappingInsert__system_3862((*b).Sup.size);
1433 	fl = T1_.Field0;
1434 	sl = T1_.Field1;
1435 	(*b).prev = ((tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*) NIM_NIL);
1436 	(*b).next = (*a).matrix[(fl)- 0][(sl)- 0];
1437 	{
1438 		if (!!(((*a).matrix[(fl)- 0][(sl)- 0] == ((tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*) NIM_NIL)))) goto LA4_;
1439 		(*(*a).matrix[(fl)- 0][(sl)- 0]).prev = b;
1440 	}
1441 	LA4_: ;
1442 	(*a).matrix[(fl)- 0][(sl)- 0] = b;
1443 	setBit__system_3830(sl, (&(*a).slBitmap[(fl)- 0]));
1444 	setBit__system_3830(fl, (&(*a).flBitmap));
1445 }
N_NIMCALL(void,splitChunk__system_4481)1446 N_LIB_PRIVATE N_NIMCALL(void, splitChunk__system_4481)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* c, NI size) {
1447 	tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* rest;
1448 	rest = splitChunk2__system_4476(a, c, size);
1449 	addChunkToMatrix__system_3950(a, rest);
1450 }
N_INLINE(void,clearBit__system_3837)1451 static N_INLINE(void, clearBit__system_3837)(NI nr, NU32* dest) {
1452 	(*dest) = (NU32)((*dest) & (NU32)((NU32) ~((NU32)((NU32)(((NU32) 1)) << (NU32)((NI)(nr & ((NI) 31)))))));
1453 }
N_NIMCALL(void,removeChunkFromMatrix2__system_3941)1454 N_LIB_PRIVATE N_NIMCALL(void, removeChunkFromMatrix2__system_3941)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* b, NI fl, NI sl) {
1455 	(*a).matrix[(fl)- 0][(sl)- 0] = (*b).next;
1456 	{
1457 		if (!!(((*a).matrix[(fl)- 0][(sl)- 0] == ((tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*) NIM_NIL)))) goto LA3_;
1458 		(*(*a).matrix[(fl)- 0][(sl)- 0]).prev = ((tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*) NIM_NIL);
1459 	}
1460 	goto LA1_;
1461 	LA3_: ;
1462 	{
1463 		clearBit__system_3837(sl, (&(*a).slBitmap[(fl)- 0]));
1464 		{
1465 			if (!((*a).slBitmap[(fl)- 0] == ((NU32) 0))) goto LA8_;
1466 			clearBit__system_3837(fl, (&(*a).flBitmap));
1467 		}
1468 		LA8_: ;
1469 	}
1470 	LA1_: ;
1471 	(*b).prev = ((tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*) NIM_NIL);
1472 	(*b).next = ((tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*) NIM_NIL);
1473 }
N_NIMCALL(tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg *,getBigChunk__system_4507)1474 N_LIB_PRIVATE N_NIMCALL(tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*, getBigChunk__system_4507)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, NI size) {
1475 	tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* result;
1476 	NI size_2;
1477 	NI fl;
1478 	NI sl;
1479 	NI T19_;
1480 	result = (tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*)0;
1481 	size_2 = size;
1482 	fl = ((NI) 0);
1483 	sl = ((NI) 0);
1484 	mappingSearch__system_3844((&size_2), (&fl), (&sl));
1485 	result = findSuitableBlock__system_3876((&(*a)), (&fl), (&sl));
1486 	{
1487 		if (!(result == ((tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*) NIM_NIL))) goto LA3_;
1488 		{
1489 			if (!(size_2 < ((NI) 524288))) goto LA7_;
1490 			result = requestOsChunks__system_4430(a, ((NI) 524288));
1491 			splitChunk__system_4481(a, result, size_2);
1492 		}
1493 		goto LA5_;
1494 		LA7_: ;
1495 		{
1496 			result = requestOsChunks__system_4430(a, size_2);
1497 			{
1498 				if (!(size_2 < (*result).Sup.size)) goto LA12_;
1499 				splitChunk__system_4481(a, result, size_2);
1500 			}
1501 			LA12_: ;
1502 		}
1503 		LA5_: ;
1504 	}
1505 	goto LA1_;
1506 	LA3_: ;
1507 	{
1508 		removeChunkFromMatrix2__system_3941(a, result, fl, sl);
1509 		{
1510 			if (!((NI)(size_2 + ((NI) 4096)) <= (*result).Sup.size)) goto LA17_;
1511 			splitChunk__system_4481(a, result, size_2);
1512 		}
1513 		LA17_: ;
1514 	}
1515 	LA1_: ;
1516 	(*result).Sup.prevSize = ((NI) 1);
1517 	T19_ = (NI)0;
1518 	T19_ = pageIndex__system_4412((*((tyObject_BaseChunk__Sdq7WpT6qAH858F5ZEdG3w**) (&(result)))));
1519 	incl__system_4247(a, (&(*a).chunkStarts), T19_);
1520 	(*a).freeMem -= size_2;
1521 	return result;
1522 }
N_NIMCALL(tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ *,getSmallChunk__system_4530)1523 N_LIB_PRIVATE N_NIMCALL(tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ*, getSmallChunk__system_4530)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a) {
1524 	tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ* result;
1525 	tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* res;
1526 	result = (tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ*)0;
1527 	res = getBigChunk__system_4507(a, ((NI) 4096));
1528 	result = ((tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ*) (res));
1529 	return result;
1530 }
N_INLINE(void,listAdd__system_4568)1531 static N_INLINE(void, listAdd__system_4568)(tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ** head, tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ* c) {
1532 	(*c).next = (*head);
1533 	{
1534 		if (!!(((*head) == ((tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ*) NIM_NIL)))) goto LA3_;
1535 		(*(*head)).prev = c;
1536 	}
1537 	LA3_: ;
1538 	(*head) = c;
1539 }
N_INLINE(void,listRemove__system_4621)1540 static N_INLINE(void, listRemove__system_4621)(tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ** head, tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ* c) {
1541 	{
1542 		if (!(c == (*head))) goto LA3_;
1543 		(*head) = (*c).next;
1544 		{
1545 			if (!!(((*head) == ((tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ*) NIM_NIL)))) goto LA7_;
1546 			(*(*head)).prev = ((tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ*) NIM_NIL);
1547 		}
1548 		LA7_: ;
1549 	}
1550 	goto LA1_;
1551 	LA3_: ;
1552 	{
1553 		(*(*c).prev).next = (*c).next;
1554 		{
1555 			if (!!(((*c).next == ((tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ*) NIM_NIL)))) goto LA12_;
1556 			(*(*c).next).prev = (*c).prev;
1557 		}
1558 		LA12_: ;
1559 	}
1560 	LA1_: ;
1561 	(*c).next = ((tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ*) NIM_NIL);
1562 	(*c).prev = ((tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ*) NIM_NIL);
1563 }
N_NIMCALL(tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg *,getHugeChunk__system_4522)1564 N_LIB_PRIVATE N_NIMCALL(tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*, getHugeChunk__system_4522)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, NI size) {
1565 	tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* result;
1566 	void* T1_;
1567 	NI T2_;
1568 	result = (tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*)0;
1569 	T1_ = (void*)0;
1570 	T1_ = osAllocPages__system_3716(size);
1571 	result = ((tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*) (T1_));
1572 	incCurrMem__system_3959(a, size);
1573 	(*result).next = ((tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*) NIM_NIL);
1574 	(*result).prev = ((tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*) NIM_NIL);
1575 	(*result).Sup.size = size;
1576 	(*result).Sup.prevSize = ((NI) 1);
1577 	T2_ = (NI)0;
1578 	T2_ = pageIndex__system_4412((*((tyObject_BaseChunk__Sdq7WpT6qAH858F5ZEdG3w**) (&(result)))));
1579 	incl__system_4247(a, (&(*a).chunkStarts), T2_);
1580 	return result;
1581 }
N_NIMCALL(tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw *,getBottom__system_4002)1582 N_LIB_PRIVATE N_NIMCALL(tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw*, getBottom__system_4002)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a) {
1583 	tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* result;
1584 	result = (tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw*)0;
1585 	result = (&(*a).bottomData);
1586 	{
1587 		if (!((*result).link[(((NI) 0))- 0] == ((tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw*) NIM_NIL))) goto LA3_;
1588 		(*result).link[(((NI) 0))- 0] = result;
1589 		(*result).link[(((NI) 1))- 0] = result;
1590 	}
1591 	LA3_: ;
1592 	return result;
1593 }
N_NIMCALL(tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw *,allocAvlNode__system_4018)1594 N_LIB_PRIVATE N_NIMCALL(tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw*, allocAvlNode__system_4018)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, NI key, NI upperBound) {
1595 	tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* result;
1596 	tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* bottom;
1597 	result = (tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw*)0;
1598 	{
1599 		if (!!(((*a).freeAvlNodes == ((tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw*) NIM_NIL)))) goto LA3_;
1600 		result = (*a).freeAvlNodes;
1601 		(*a).freeAvlNodes = (*(*a).freeAvlNodes).link[(((NI) 0))- 0];
1602 	}
1603 	goto LA1_;
1604 	LA3_: ;
1605 	{
1606 		void* T6_;
1607 		T6_ = (void*)0;
1608 		T6_ = llAlloc__system_3976(a, ((NI) 20));
1609 		result = ((tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw*) (T6_));
1610 	}
1611 	LA1_: ;
1612 	(*result).key = key;
1613 	(*result).upperBound = upperBound;
1614 	bottom = getBottom__system_4002(a);
1615 	(*result).link[(((NI) 0))- 0] = bottom;
1616 	(*result).link[(((NI) 1))- 0] = bottom;
1617 	(*result).level = ((NI) 1);
1618 	return result;
1619 }
N_INLINE(NIM_BOOL,ltpercent___system_1005)1620 static N_INLINE(NIM_BOOL, ltpercent___system_1005)(NI x, NI y) {
1621 	NIM_BOOL result;
1622 	result = (NIM_BOOL)0;
1623 	result = ((NU32)(((NU) (x))) < (NU32)(((NU) (y))));
1624 	return result;
1625 }
N_NIMCALL(void,skew__system_4139)1626 N_LIB_PRIVATE N_NIMCALL(void, skew__system_4139)(tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw** t) {
1627 	{
1628 		tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* temp;
1629 		if (!((*(*(*t)).link[(((NI) 0))- 0]).level == (*(*t)).level)) goto LA3_;
1630 		temp = (*t);
1631 		(*t) = (*(*t)).link[(((NI) 0))- 0];
1632 		(*temp).link[(((NI) 0))- 0] = (*(*t)).link[(((NI) 1))- 0];
1633 		(*(*t)).link[(((NI) 1))- 0] = temp;
1634 	}
1635 	LA3_: ;
1636 }
N_NIMCALL(void,split__system_4142)1637 N_LIB_PRIVATE N_NIMCALL(void, split__system_4142)(tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw** t) {
1638 	{
1639 		tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* temp;
1640 		if (!((*(*(*(*t)).link[(((NI) 1))- 0]).link[(((NI) 1))- 0]).level == (*(*t)).level)) goto LA3_;
1641 		temp = (*t);
1642 		(*t) = (*(*t)).link[(((NI) 1))- 0];
1643 		(*temp).link[(((NI) 1))- 0] = (*(*t)).link[(((NI) 0))- 0];
1644 		(*(*t)).link[(((NI) 0))- 0] = temp;
1645 		(*(*t)).level += ((NI) 1);
1646 	}
1647 	LA3_: ;
1648 }
N_NIMCALL(void,add__system_4149)1649 N_LIB_PRIVATE N_NIMCALL(void, add__system_4149)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw** t, NI key, NI upperBound) {
1650 	{
1651 		if (!((*(*t)).link[(((NI) 0))- 0] == (*t))) goto LA3_;
1652 		(*t) = allocAvlNode__system_4018(a, key, upperBound);
1653 	}
1654 	goto LA1_;
1655 	LA3_: ;
1656 	{
1657 		{
1658 			NIM_BOOL T8_;
1659 			T8_ = (NIM_BOOL)0;
1660 			T8_ = ltpercent___system_1005(key, (*(*t)).key);
1661 			if (!T8_) goto LA9_;
1662 			add__system_4149(a, &(*(*t)).link[(((NI) 0))- 0], key, upperBound);
1663 		}
1664 		goto LA6_;
1665 		LA9_: ;
1666 		{
1667 			NIM_BOOL T12_;
1668 			T12_ = (NIM_BOOL)0;
1669 			T12_ = ltpercent___system_1005((*(*t)).key, key);
1670 			if (!T12_) goto LA13_;
1671 			add__system_4149(a, &(*(*t)).link[(((NI) 1))- 0], key, upperBound);
1672 		}
1673 		goto LA6_;
1674 		LA13_: ;
1675 		{
1676 		}
1677 		LA6_: ;
1678 		skew__system_4139(t);
1679 		split__system_4142(t);
1680 	}
1681 	LA1_: ;
1682 }
N_NIMCALL(void *,rawAlloc__system_4551)1683 N_LIB_PRIVATE N_NIMCALL(void*, rawAlloc__system_4551)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, NI requestedSize) {
1684 	void* result;
1685 	NI size;
1686 	result = (void*)0;
1687 	size = roundup__system_3696(requestedSize, ((NI) 16));
1688 	{
1689 		NI s;
1690 		tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ* c;
1691 		if (!(size <= ((NI) 4064))) goto LA3_;
1692 		s = (NI)(size / ((NI) 16));
1693 		c = (*a).freeSmallChunks[(s)- 0];
1694 		{
1695 			if (!(c == ((tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ*) NIM_NIL))) goto LA7_;
1696 			c = getSmallChunk__system_4530(a);
1697 			(*c).freeList = ((tyObject_FreeCell__u6M5LHprqzkn9axr04yg9bGQ*) NIM_NIL);
1698 			(*c).Sup.size = size;
1699 			(*c).acc = size;
1700 			(*c).free = (NI)(((NI) 4064) - size);
1701 			(*c).next = ((tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ*) NIM_NIL);
1702 			(*c).prev = ((tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ*) NIM_NIL);
1703 			listAdd__system_4568(&(*a).freeSmallChunks[(s)- 0], c);
1704 			result = ((void*) ((*c).data));
1705 		}
1706 		goto LA5_;
1707 		LA7_: ;
1708 		{
1709 			{
1710 				NI T14_;
1711 				if (!((*c).freeList == ((tyObject_FreeCell__u6M5LHprqzkn9axr04yg9bGQ*) NIM_NIL))) goto LA12_;
1712 				T14_ = (NI)0;
1713 				T14_ = pluspercent___system_696(((NI) (ptrdiff_t) ((*c).data)), (*c).acc);
1714 				result = ((void*) (T14_));
1715 				(*c).acc += size;
1716 			}
1717 			goto LA10_;
1718 			LA12_: ;
1719 			{
1720 				result = ((void*) ((*c).freeList));
1721 				(*c).freeList = (*(*c).freeList).next;
1722 			}
1723 			LA10_: ;
1724 			(*c).free -= size;
1725 		}
1726 		LA5_: ;
1727 		{
1728 			if (!((*c).free < size)) goto LA18_;
1729 			listRemove__system_4621(&(*a).freeSmallChunks[(s)- 0], c);
1730 		}
1731 		LA18_: ;
1732 		(*a).occ += size;
1733 	}
1734 	goto LA1_;
1735 	LA3_: ;
1736 	{
1737 		tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* c_2;
1738 		NI T30_;
1739 		size = (NI)(requestedSize + ((NI) 16));
1740 		{
1741 			if (!(((NI) 1056964609) <= size)) goto LA23_;
1742 			c_2 = getHugeChunk__system_4522(a, size);
1743 		}
1744 		goto LA21_;
1745 		LA23_: ;
1746 		{
1747 			c_2 = getBigChunk__system_4507(a, size);
1748 		}
1749 		LA21_: ;
1750 		result = ((void*) ((*c_2).data));
1751 		{
1752 			if (!((*a).root == ((tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw*) NIM_NIL))) goto LA28_;
1753 			(*a).root = getBottom__system_4002(a);
1754 		}
1755 		LA28_: ;
1756 		T30_ = (NI)0;
1757 		T30_ = pluspercent___system_696(((NI) (ptrdiff_t) (result)), size);
1758 		add__system_4149(a, &(*a).root, ((NI) (ptrdiff_t) (result)), T30_);
1759 		(*a).occ += (*c_2).Sup.size;
1760 	}
1761 	LA1_: ;
1762 	return result;
1763 }
N_NIMCALL(void *,alloc__system_4767)1764 N_LIB_PRIVATE N_NIMCALL(void*, alloc__system_4767)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* allocator, NI size) {
1765 	void* result;
1766 	NI T1_;
1767 	result = (void*)0;
1768 	result = rawAlloc__system_4551(allocator, (NI)(((NI) (size)) + ((NI) 8)));
1769 	(*((tyObject_FreeCell__u6M5LHprqzkn9axr04yg9bGQ*) (result))).zeroField = ((NI) 1);
1770 	T1_ = (NI)0;
1771 	T1_ = pluspercent___system_696(((NI) (ptrdiff_t) (result)), ((NI) 8));
1772 	result = ((void*) (T1_));
1773 	return result;
1774 }
N_NIMCALL(void *,alloc0__system_4771)1775 N_LIB_PRIVATE N_NIMCALL(void*, alloc0__system_4771)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* allocator, NI size) {
1776 	void* result;
1777 	result = (void*)0;
1778 	result = alloc__system_4767(allocator, size);
1779 	zeroMem__system_1724(result, size);
1780 	return result;
1781 }
N_NOCONV(void *,alloc0Impl__system_1745)1782 N_LIB_PRIVATE N_NOCONV(void*, alloc0Impl__system_1745)(NI size) {
1783 	void* result;
1784 	result = (void*)0;
1785 	result = alloc0__system_4771((&gch__system_5209.region), size);
1786 	return result;
1787 }
N_NIMCALL(void,init__system_4877)1788 N_LIB_PRIVATE N_NIMCALL(void, init__system_4877)(tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w* s, NI cap) {
1789 	void* T1_;
1790 	(*s).len = ((NI) 0);
1791 	(*s).cap = cap;
1792 	T1_ = (void*)0;
1793 	T1_ = alloc0Impl__system_1745(((NI) ((NI)(cap * ((NI) 4)))));
1794 	(*s).d = ((tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g**) (T1_));
1795 }
N_NIMCALL(void,init__system_4883)1796 N_LIB_PRIVATE N_NIMCALL(void, init__system_4883)(tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ* s) {
1797 	void* T1_;
1798 	T1_ = (void*)0;
1799 	T1_ = alloc0Impl__system_1745(((NI) 4096));
1800 	(*s).data = ((tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg**) (T1_));
1801 	(*s).max = ((NI) 1023);
1802 	(*s).counter = ((NI) 0);
1803 	(*s).head = ((tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg*) NIM_NIL);
1804 }
N_INLINE(NI,atomicInc__system_2172)1805 static N_INLINE(NI, atomicInc__system_2172)(NI* memLoc, NI x) {
1806 	NI result;
1807 	result = (NI)0;
1808 	(*memLoc) += x;
1809 	result = (*memLoc);
1810 	return result;
1811 }
N_NIMCALL(void,initGC__system_2398)1812 N_LIB_PRIVATE N_NIMCALL(void, initGC__system_2398)(void) {
1813 	NI T1_;
1814 	gch__system_5209.cycleThreshold = ((NI) 4194304);
1815 	gch__system_5209.zctThreshold = ((NI) 500);
1816 	gch__system_5209.stat.stackScans = ((NI) 0);
1817 	gch__system_5209.stat.cycleCollections = ((NI) 0);
1818 	gch__system_5209.stat.maxThreshold = ((NI) 0);
1819 	gch__system_5209.stat.maxStackSize = ((NI) 0);
1820 	gch__system_5209.stat.maxStackCells = ((NI) 0);
1821 	gch__system_5209.stat.cycleTableSize = ((NI) 0);
1822 	init__system_4877((&gch__system_5209.zct), ((NI) 1024));
1823 	init__system_4877((&gch__system_5209.tempStack), ((NI) 1024));
1824 	init__system_4877((&gch__system_5209.decStack), ((NI) 1024));
1825 	init__system_4883((&gch__system_5209.marked));
1826 	init__system_4877((&gch__system_5209.additionalRoots), ((NI) 1024));
1827 	T1_ = (NI)0;
1828 	T1_ = atomicInc__system_2172((&gHeapidGenerator__system_5476), ((NI) 1));
1829 	gch__system_5209.gcThreadId = (NI)(T1_ - ((NI) 1));
1830 }
N_NIMCALL(void,Marker_tySequence__uB9b75OUPRENsBAu4AnoePA)1831 static N_NIMCALL(void, Marker_tySequence__uB9b75OUPRENsBAu4AnoePA)(void* p, NI op) {
1832 	tySequence__uB9b75OUPRENsBAu4AnoePA* a;
1833 	NI T1_;
1834 	a = (tySequence__uB9b75OUPRENsBAu4AnoePA*)p;
1835 	T1_ = (NI)0;
1836 }
N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g *,usrToCell__system_5262)1837 static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__system_5262)(void* usr) {
1838 	tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* result;
1839 	NI T1_;
1840 	result = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
1841 	T1_ = (NI)0;
1842 	T1_ = minuspercent___system_716(((NI) (ptrdiff_t) (usr)), ((NI) 8));
1843 	result = ((tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*) (T1_));
1844 	return result;
1845 }
N_NOCONV(void *,allocImpl__system_1743)1846 N_LIB_PRIVATE N_NOCONV(void*, allocImpl__system_1743)(NI size) {
1847 	void* result;
1848 	result = (void*)0;
1849 	result = alloc__system_4767((&gch__system_5209.region), size);
1850 	return result;
1851 }
N_INLINE(void,nimCopyMem)1852 static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size) {
1853 	void* T1_;
1854 	T1_ = (void*)0;
1855 	T1_ = memcpy(dest, source, ((size_t) (size)));
1856 }
N_INLINE(void,copyMem__system_1727)1857 static N_INLINE(void, copyMem__system_1727)(void* dest, void* source, NI size) {
1858 	nimCopyMem(dest, source, size);
1859 }
N_INLINE(tyObject_BaseChunk__Sdq7WpT6qAH858F5ZEdG3w *,pageAddr__system_4426)1860 static N_INLINE(tyObject_BaseChunk__Sdq7WpT6qAH858F5ZEdG3w*, pageAddr__system_4426)(void* p) {
1861 	tyObject_BaseChunk__Sdq7WpT6qAH858F5ZEdG3w* result;
1862 	result = (tyObject_BaseChunk__Sdq7WpT6qAH858F5ZEdG3w*)0;
1863 	result = ((tyObject_BaseChunk__Sdq7WpT6qAH858F5ZEdG3w*) ((NI)(((NI) (ptrdiff_t) (p)) & ((NI) -4096))));
1864 	return result;
1865 }
N_INLINE(NIM_BOOL,isSmallChunk__system_4337)1866 static N_INLINE(NIM_BOOL, isSmallChunk__system_4337)(tyObject_BaseChunk__Sdq7WpT6qAH858F5ZEdG3w* c) {
1867 	NIM_BOOL result;
1868 	result = (NIM_BOOL)0;
1869 	result = ((*c).size <= ((NI) 4064));
1870 	return result;
1871 }
N_INLINE(NIM_BOOL,chunkUnused__system_4343)1872 static N_INLINE(NIM_BOOL, chunkUnused__system_4343)(tyObject_BaseChunk__Sdq7WpT6qAH858F5ZEdG3w* c) {
1873 	NIM_BOOL result;
1874 	result = (NIM_BOOL)0;
1875 	result = ((NI)((*c).prevSize & ((NI) 1)) == ((NI) 0));
1876 	return result;
1877 }
N_NIMCALL(void,removeChunkFromMatrix__system_3911)1878 N_LIB_PRIVATE N_NIMCALL(void, removeChunkFromMatrix__system_3911)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* b) {
1879 	tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ T1_;
1880 	NI fl;
1881 	NI sl;
1882 	T1_ = mappingInsert__system_3862((*b).Sup.size);
1883 	fl = T1_.Field0;
1884 	sl = T1_.Field1;
1885 	{
1886 		if (!!(((*b).next == ((tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*) NIM_NIL)))) goto LA4_;
1887 		(*(*b).next).prev = (*b).prev;
1888 	}
1889 	LA4_: ;
1890 	{
1891 		if (!!(((*b).prev == ((tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*) NIM_NIL)))) goto LA8_;
1892 		(*(*b).prev).next = (*b).next;
1893 	}
1894 	LA8_: ;
1895 	{
1896 		if (!((*a).matrix[(fl)- 0][(sl)- 0] == b)) goto LA12_;
1897 		(*a).matrix[(fl)- 0][(sl)- 0] = (*b).next;
1898 		{
1899 			if (!((*a).matrix[(fl)- 0][(sl)- 0] == ((tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*) NIM_NIL))) goto LA16_;
1900 			clearBit__system_3837(sl, (&(*a).slBitmap[(fl)- 0]));
1901 			{
1902 				if (!((*a).slBitmap[(fl)- 0] == ((NU32) 0))) goto LA20_;
1903 				clearBit__system_3837(fl, (&(*a).flBitmap));
1904 			}
1905 			LA20_: ;
1906 		}
1907 		LA16_: ;
1908 	}
1909 	LA12_: ;
1910 	(*b).prev = ((tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*) NIM_NIL);
1911 	(*b).next = ((tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*) NIM_NIL);
1912 }
N_NIMCALL(void,excl__system_4269)1913 N_LIB_PRIVATE N_NIMCALL(void, excl__system_4269)(tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA* s, NI key) {
1914 	tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw* t;
1915 	t = intSetGet__system_4186((&(*s)), (NI)((NI32)(key) >> (NU32)(((NI) 9))));
1916 	{
1917 		NI u;
1918 		if (!!((t == ((tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw*) NIM_NIL)))) goto LA3_;
1919 		u = (NI)(key & ((NI) 511));
1920 		(*t).bits[((NI)((NI32)(u) >> (NU32)(((NI) 5))))- 0] = (NU)((*t).bits[((NI)((NI32)(u) >> (NU32)(((NI) 5))))- 0] & (NU)((NU32) ~((NU)((NU32)(((NU) 1)) << (NU32)((NI)(u & ((NI) 31)))))));
1921 	}
1922 	LA3_: ;
1923 }
N_NIMCALL(void,freeBigChunk__system_4486)1924 N_LIB_PRIVATE N_NIMCALL(void, freeBigChunk__system_4486)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* c) {
1925 	tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* c_2;
1926 	NI prevSize;
1927 	tyObject_BaseChunk__Sdq7WpT6qAH858F5ZEdG3w* ri;
1928 	NI T24_;
1929 	c_2 = c;
1930 	(*a).freeMem += (*c_2).Sup.size;
1931 	(*c_2).Sup.prevSize = (NI)((*c_2).Sup.prevSize & ((NI) -2));
1932 	prevSize = (*c_2).Sup.prevSize;
1933 	{
1934 		tyObject_BaseChunk__Sdq7WpT6qAH858F5ZEdG3w* le;
1935 		NI T5_;
1936 		if (!!((prevSize == ((NI) 0)))) goto LA3_;
1937 		T5_ = (NI)0;
1938 		T5_ = minuspercent___system_716(((NI) (ptrdiff_t) (c_2)), prevSize);
1939 		le = ((tyObject_BaseChunk__Sdq7WpT6qAH858F5ZEdG3w*) (T5_));
1940 		{
1941 			NIM_BOOL T8_;
1942 			T8_ = (NIM_BOOL)0;
1943 			T8_ = isAccessible__system_4453((&(*a)), ((void*) (le)));
1944 			if (!(T8_)) goto LA9_;
1945 			T8_ = chunkUnused__system_4343(le);
1946 			LA9_: ;
1947 			if (!T8_) goto LA10_;
1948 			{
1949 				NIM_BOOL T14_;
1950 				NIM_BOOL T15_;
1951 				NI T19_;
1952 				T14_ = (NIM_BOOL)0;
1953 				T15_ = (NIM_BOOL)0;
1954 				T15_ = isSmallChunk__system_4337(le);
1955 				T14_ = !(T15_);
1956 				if (!(T14_)) goto LA16_;
1957 				T14_ = ((*le).size < ((NI) 1056964608));
1958 				LA16_: ;
1959 				if (!T14_) goto LA17_;
1960 				removeChunkFromMatrix__system_3911(a, ((tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*) (le)));
1961 				(*le).size += (*c_2).Sup.size;
1962 				T19_ = (NI)0;
1963 				T19_ = pageIndex__system_4412((*((tyObject_BaseChunk__Sdq7WpT6qAH858F5ZEdG3w**) (&(c_2)))));
1964 				excl__system_4269((&(*a).chunkStarts), T19_);
1965 				c_2 = ((tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*) (le));
1966 				{
1967 					tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* rest;
1968 					if (!(((NI) 1056964608) < (*c_2).Sup.size)) goto LA22_;
1969 					rest = splitChunk2__system_4476(a, c_2, ((NI) 1056964608));
1970 					addChunkToMatrix__system_3950(a, c_2);
1971 					c_2 = rest;
1972 				}
1973 				LA22_: ;
1974 			}
1975 			LA17_: ;
1976 		}
1977 		LA10_: ;
1978 	}
1979 	LA3_: ;
1980 	T24_ = (NI)0;
1981 	T24_ = pluspercent___system_696(((NI) (ptrdiff_t) (c_2)), (*c_2).Sup.size);
1982 	ri = ((tyObject_BaseChunk__Sdq7WpT6qAH858F5ZEdG3w*) (T24_));
1983 	{
1984 		NIM_BOOL T27_;
1985 		T27_ = (NIM_BOOL)0;
1986 		T27_ = isAccessible__system_4453((&(*a)), ((void*) (ri)));
1987 		if (!(T27_)) goto LA28_;
1988 		T27_ = chunkUnused__system_4343(ri);
1989 		LA28_: ;
1990 		if (!T27_) goto LA29_;
1991 		{
1992 			NIM_BOOL T33_;
1993 			NIM_BOOL T34_;
1994 			NI T38_;
1995 			T33_ = (NIM_BOOL)0;
1996 			T34_ = (NIM_BOOL)0;
1997 			T34_ = isSmallChunk__system_4337(ri);
1998 			T33_ = !(T34_);
1999 			if (!(T33_)) goto LA35_;
2000 			T33_ = ((*c_2).Sup.size < ((NI) 1056964608));
2001 			LA35_: ;
2002 			if (!T33_) goto LA36_;
2003 			removeChunkFromMatrix__system_3911(a, ((tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*) (ri)));
2004 			(*c_2).Sup.size += (*ri).size;
2005 			T38_ = (NI)0;
2006 			T38_ = pageIndex__system_4412(ri);
2007 			excl__system_4269((&(*a).chunkStarts), T38_);
2008 			{
2009 				tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* rest_2;
2010 				if (!(((NI) 1056964608) < (*c_2).Sup.size)) goto LA41_;
2011 				rest_2 = splitChunk2__system_4476(a, c_2, ((NI) 1056964608));
2012 				addChunkToMatrix__system_3950(a, rest_2);
2013 			}
2014 			LA41_: ;
2015 		}
2016 		LA36_: ;
2017 	}
2018 	LA29_: ;
2019 	addChunkToMatrix__system_3950(a, c_2);
2020 }
N_INLINE(void,deallocAvlNode__system_4040)2021 static N_INLINE(void, deallocAvlNode__system_4040)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* n) {
2022 	(*n).link[(((NI) 0))- 0] = (*a).freeAvlNodes;
2023 	(*a).freeAvlNodes = n;
2024 }
N_NIMCALL(void,del__system_4158)2025 N_LIB_PRIVATE N_NIMCALL(void, del__system_4158)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw** t, NI x) {
2026 {	{
2027 		if (!((*(*t)).link[(((NI) 0))- 0] == (*t))) goto LA3_;
2028 		goto BeforeRet_;
2029 	}
2030 	LA3_: ;
2031 	(*a).last = (*t);
2032 	{
2033 		NIM_BOOL T7_;
2034 		T7_ = (NIM_BOOL)0;
2035 		T7_ = ltpercent___system_1005(x, (*(*t)).key);
2036 		if (!T7_) goto LA8_;
2037 		del__system_4158(a, &(*(*t)).link[(((NI) 0))- 0], x);
2038 	}
2039 	goto LA5_;
2040 	LA8_: ;
2041 	{
2042 		(*a).deleted = (*t);
2043 		del__system_4158(a, &(*(*t)).link[(((NI) 1))- 0], x);
2044 	}
2045 	LA5_: ;
2046 	{
2047 		NIM_BOOL T13_;
2048 		NIM_BOOL T14_;
2049 		T13_ = (NIM_BOOL)0;
2050 		T14_ = (NIM_BOOL)0;
2051 		T14_ = ((*t) == (*a).last);
2052 		if (!(T14_)) goto LA15_;
2053 		T14_ = !(((*(*a).deleted).link[(((NI) 0))- 0] == (*a).deleted));
2054 		LA15_: ;
2055 		T13_ = T14_;
2056 		if (!(T13_)) goto LA16_;
2057 		T13_ = (x == (*(*a).deleted).key);
2058 		LA16_: ;
2059 		if (!T13_) goto LA17_;
2060 		(*(*a).deleted).key = (*(*t)).key;
2061 		(*(*a).deleted).upperBound = (*(*t)).upperBound;
2062 		(*a).deleted = getBottom__system_4002(a);
2063 		(*t) = (*(*t)).link[(((NI) 1))- 0];
2064 		deallocAvlNode__system_4040(a, (*a).last);
2065 	}
2066 	goto LA11_;
2067 	LA17_: ;
2068 	{
2069 		NIM_BOOL T20_;
2070 		T20_ = (NIM_BOOL)0;
2071 		T20_ = ((*(*(*t)).link[(((NI) 0))- 0]).level < (NI)((*(*t)).level - ((NI) 1)));
2072 		if (T20_) goto LA21_;
2073 		T20_ = ((*(*(*t)).link[(((NI) 1))- 0]).level < (NI)((*(*t)).level - ((NI) 1)));
2074 		LA21_: ;
2075 		if (!T20_) goto LA22_;
2076 		(*(*t)).level -= ((NI) 1);
2077 		{
2078 			if (!((*(*t)).level < (*(*(*t)).link[(((NI) 1))- 0]).level)) goto LA26_;
2079 			(*(*(*t)).link[(((NI) 1))- 0]).level = (*(*t)).level;
2080 		}
2081 		LA26_: ;
2082 		skew__system_4139(t);
2083 		skew__system_4139(&(*(*t)).link[(((NI) 1))- 0]);
2084 		skew__system_4139(&(*(*(*t)).link[(((NI) 1))- 0]).link[(((NI) 1))- 0]);
2085 		split__system_4142(t);
2086 		split__system_4142(&(*(*t)).link[(((NI) 1))- 0]);
2087 	}
2088 	goto LA11_;
2089 	LA22_: ;
2090 	LA11_: ;
2091 	}BeforeRet_: ;
2092 }
N_INLINE(void,decCurrMem__system_3966)2093 static N_INLINE(void, decCurrMem__system_3966)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, NI bytes) {
2094 	(*a).maxMem = (((*a).maxMem >= (*a).currMem) ? (*a).maxMem : (*a).currMem);
2095 	(*a).currMem -= bytes;
2096 }
N_INLINE(void,osDeallocPages__system_3722)2097 static N_INLINE(void, osDeallocPages__system_3722)(void* p, NI size) {
2098 	int T1_;
2099 	T1_ = (int)0;
2100 	T1_ = munmap(p, ((size_t) (size)));
2101 	(void)(T1_);
2102 }
N_NIMCALL(void,freeHugeChunk__system_4526)2103 N_LIB_PRIVATE N_NIMCALL(void, freeHugeChunk__system_4526)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* c) {
2104 	NI size;
2105 	NI T1_;
2106 	size = (*c).Sup.size;
2107 	T1_ = (NI)0;
2108 	T1_ = pageIndex__system_4412(&c->Sup);
2109 	excl__system_4269((&(*a).chunkStarts), T1_);
2110 	decCurrMem__system_3966(a, size);
2111 	osDeallocPages__system_3722(((void*) (c)), size);
2112 }
N_NIMCALL(void,rawDealloc__system_4680)2113 N_LIB_PRIVATE N_NIMCALL(void, rawDealloc__system_4680)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, void* p) {
2114 	tyObject_BaseChunk__Sdq7WpT6qAH858F5ZEdG3w* c;
2115 	c = pageAddr__system_4426(p);
2116 	{
2117 		NIM_BOOL T3_;
2118 		tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ* c_2;
2119 		NI s;
2120 		tyObject_FreeCell__u6M5LHprqzkn9axr04yg9bGQ* f;
2121 		T3_ = (NIM_BOOL)0;
2122 		T3_ = isSmallChunk__system_4337(c);
2123 		if (!T3_) goto LA4_;
2124 		c_2 = ((tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ*) (c));
2125 		s = (*c_2).Sup.size;
2126 		(*a).occ -= s;
2127 		f = ((tyObject_FreeCell__u6M5LHprqzkn9axr04yg9bGQ*) (p));
2128 		(*f).zeroField = ((NI) 0);
2129 		(*f).next = (*c_2).freeList;
2130 		(*c_2).freeList = f;
2131 		{
2132 			if (!((*c_2).free < s)) goto LA8_;
2133 			listAdd__system_4568(&(*a).freeSmallChunks[((NI)(s / ((NI) 16)))- 0], c_2);
2134 			(*c_2).free += s;
2135 		}
2136 		goto LA6_;
2137 		LA8_: ;
2138 		{
2139 			(*c_2).free += s;
2140 			{
2141 				if (!((*c_2).free == ((NI) 4064))) goto LA13_;
2142 				listRemove__system_4621(&(*a).freeSmallChunks[((NI)(s / ((NI) 16)))- 0], c_2);
2143 				(*c_2).Sup.size = ((NI) 4096);
2144 				freeBigChunk__system_4486(a, ((tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*) (c_2)));
2145 			}
2146 			LA13_: ;
2147 		}
2148 		LA6_: ;
2149 	}
2150 	goto LA1_;
2151 	LA4_: ;
2152 	{
2153 		tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* c_3;
2154 		c_3 = ((tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*) (c));
2155 		(*a).occ -= (*c_3).Sup.size;
2156 		(*a).deleted = getBottom__system_4002(a);
2157 		del__system_4158(a, &(*a).root, ((NI) (ptrdiff_t) ((*c_3).data)));
2158 		{
2159 			if (!(((NI) 1056964609) <= (*c_3).Sup.size)) goto LA18_;
2160 			freeHugeChunk__system_4526(a, c_3);
2161 		}
2162 		goto LA16_;
2163 		LA18_: ;
2164 		{
2165 			freeBigChunk__system_4486(a, c_3);
2166 		}
2167 		LA16_: ;
2168 	}
2169 	LA1_: ;
2170 }
N_NIMCALL(void,dealloc__system_4775)2171 N_LIB_PRIVATE N_NIMCALL(void, dealloc__system_4775)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* allocator, void* p) {
2172 	void* x;
2173 	NI T1_;
2174 	T1_ = (NI)0;
2175 	T1_ = minuspercent___system_716(((NI) (ptrdiff_t) (p)), ((NI) 8));
2176 	x = ((void*) (T1_));
2177 	rawDealloc__system_4680(allocator, x);
2178 }
N_NOCONV(void,deallocImpl__system_1747)2179 N_LIB_PRIVATE N_NOCONV(void, deallocImpl__system_1747)(void* p) {
2180 	dealloc__system_4775((&gch__system_5209.region), p);
2181 }
N_NOCONV(void,dealloc)2182 N_LIB_PRIVATE N_NOCONV(void, dealloc)(void* p) {
2183 	deallocImpl__system_1747(p);
2184 }
N_INLINE(void,add__system_4851)2185 static N_INLINE(void, add__system_4851)(tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w* s, tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
2186 	{
2187 		tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g** d;
2188 		void* T5_;
2189 		if (!((*s).cap <= (*s).len)) goto LA3_;
2190 		(*s).cap = (NI)((NI)((*s).cap * ((NI) 3)) / ((NI) 2));
2191 		T5_ = (void*)0;
2192 		T5_ = allocImpl__system_1743(((NI) ((NI)((*s).cap * ((NI) 4)))));
2193 		d = ((tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g**) (T5_));
2194 		copyMem__system_1727(((void*) (d)), ((void*) ((*s).d)), ((NI) ((NI)((*s).len * ((NI) 4)))));
2195 		dealloc(((void*) ((*s).d)));
2196 		(*s).d = d;
2197 	}
2198 	LA3_: ;
2199 	(*s).d[(*s).len] = c;
2200 	(*s).len += ((NI) 1);
2201 }
N_NOINLINE(void,addZCT__system_5256)2202 N_LIB_PRIVATE N_NOINLINE(void, addZCT__system_5256)(tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w* s, tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
2203 	{
2204 		if (!((NI)((*c).refcount & ((NI) 4)) == ((NI) 0))) goto LA3_;
2205 		(*c).refcount = (NI)((*c).refcount | ((NI) 4));
2206 		add__system_4851(s, c);
2207 	}
2208 	LA3_: ;
2209 }
N_INLINE(void,rtlAddZCT__system_5305)2210 static N_INLINE(void, rtlAddZCT__system_5305)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
2211 	addZCT__system_5256((&gch__system_5209.zct), c);
2212 }
N_INLINE(void,decRef__system_5307)2213 static N_INLINE(void, decRef__system_5307)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
2214 	(*c).refcount = minuspercent___system_716((*c).refcount, ((NI) 8));
2215 	{
2216 		NIM_BOOL T3_;
2217 		T3_ = (NIM_BOOL)0;
2218 		T3_ = ltpercent___system_1005((*c).refcount, ((NI) 8));
2219 		if (!T3_) goto LA4_;
2220 		rtlAddZCT__system_5305(c);
2221 	}
2222 	LA4_: ;
2223 }
N_INLINE(NI,nextTry__system_4911)2224 static N_INLINE(NI, nextTry__system_4911)(NI h, NI maxHash) {
2225 	NI result;
2226 	result = (NI)0;
2227 	result = (NI)((NI)((NI)(((NI) 5) * h) + ((NI) 1)) & maxHash);
2228 	return result;
2229 }
N_NIMCALL(void,cellSetRawInsert__system_4924)2230 N_LIB_PRIVATE N_NIMCALL(void, cellSetRawInsert__system_4924)(tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ t, tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg** data, tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg* desc) {
2231 	NI h;
2232 	h = (NI)(((NI) ((*desc).key)) & t.max);
2233 	{
2234 		while (1) {
2235 			if (!!((data[h] == ((tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg*) NIM_NIL)))) goto LA2;
2236 			h = nextTry__system_4911(h, t.max);
2237 		} LA2: ;
2238 	}
2239 	data[h] = desc;
2240 }
N_NIMCALL(void,cellSetEnlarge__system_4941)2241 N_LIB_PRIVATE N_NIMCALL(void, cellSetEnlarge__system_4941)(tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ* t) {
2242 	NI oldMax;
2243 	tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg** n;
2244 	void* T1_;
2245 	oldMax = (*t).max;
2246 	(*t).max = (NI)((NI)((NI)((*t).max + ((NI) 1)) * ((NI) 2)) - ((NI) 1));
2247 	T1_ = (void*)0;
2248 	T1_ = alloc0Impl__system_1745(((NI) ((NI)((NI)((*t).max + ((NI) 1)) * ((NI) 4)))));
2249 	n = ((tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg**) (T1_));
2250 	{
2251 		NI i;
2252 		NI res;
2253 		i = (NI)0;
2254 		res = ((NI) 0);
2255 		{
2256 			while (1) {
2257 				if (!(res <= oldMax)) goto LA4;
2258 				i = res;
2259 				{
2260 					if (!!(((*t).data[i] == ((tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg*) NIM_NIL)))) goto LA7_;
2261 					cellSetRawInsert__system_4924((*t), n, (*t).data[i]);
2262 				}
2263 				LA7_: ;
2264 				res += ((NI) 1);
2265 			} LA4: ;
2266 		}
2267 	}
2268 	dealloc(((void*) ((*t).data)));
2269 	(*t).data = n;
2270 }
N_NIMCALL(tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg *,cellSetPut__system_4954)2271 N_LIB_PRIVATE N_NIMCALL(tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg*, cellSetPut__system_4954)(tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ* t, NU key) {
2272 	tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg* result;
2273 	NI h;
2274 	void* T19_;
2275 {	result = (tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg*)0;
2276 	h = (NI)(((NI) (key)) & (*t).max);
2277 	{
2278 		while (1) {
2279 			tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg* x;
2280 			x = (*t).data[h];
2281 			{
2282 				if (!(x == ((tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg*) NIM_NIL))) goto LA5_;
2283 				goto LA1;
2284 			}
2285 			LA5_: ;
2286 			{
2287 				if (!((*x).key == key)) goto LA9_;
2288 				result = x;
2289 				goto BeforeRet_;
2290 			}
2291 			LA9_: ;
2292 			h = nextTry__system_4911(h, (*t).max);
2293 		}
2294 	} LA1: ;
2295 	{
2296 		NIM_BOOL T13_;
2297 		T13_ = (NIM_BOOL)0;
2298 		T13_ = ((NI)((NI)((*t).max + ((NI) 1)) * ((NI) 2)) < (NI)((*t).counter * ((NI) 3)));
2299 		if (T13_) goto LA14_;
2300 		T13_ = ((NI)((NI)((*t).max + ((NI) 1)) - (*t).counter) < ((NI) 4));
2301 		LA14_: ;
2302 		if (!T13_) goto LA15_;
2303 		cellSetEnlarge__system_4941(t);
2304 	}
2305 	LA15_: ;
2306 	(*t).counter += ((NI) 1);
2307 	h = (NI)(((NI) (key)) & (*t).max);
2308 	{
2309 		while (1) {
2310 			if (!!(((*t).data[h] == ((tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg*) NIM_NIL)))) goto LA18;
2311 			h = nextTry__system_4911(h, (*t).max);
2312 		} LA18: ;
2313 	}
2314 	T19_ = (void*)0;
2315 	T19_ = alloc0Impl__system_1745(((NI) 40));
2316 	result = ((tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg*) (T19_));
2317 	(*result).next = (*t).head;
2318 	(*result).key = key;
2319 	(*t).head = result;
2320 	(*t).data[h] = result;
2321 	}BeforeRet_: ;
2322 	return result;
2323 }
N_NIMCALL(void,incl__system_5008)2324 N_LIB_PRIVATE N_NIMCALL(void, incl__system_5008)(tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ* s, tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* cell) {
2325 	NU u;
2326 	tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg* t;
2327 	u = ((NU) (ptrdiff_t) (cell));
2328 	t = cellSetPut__system_4954(s, (NU)((NU32)(u) >> (NU32)(((NI) 12))));
2329 	u = (NU)((NU32)((NU)((NU32)(u) % (NU32)(((NU) 4096)))) / (NU32)(((NU) 16)));
2330 	(*t).bits[((NU)((NU32)(u) >> (NU32)(((NI) 5))))- 0] = (NI)((*t).bits[((NU)((NU32)(u) >> (NU32)(((NI) 5))))- 0] | (NI)((NU32)(((NI) 1)) << (NU32)((NU)(u & ((NU) 31)))));
2331 }
N_INLINE(void *,cellToUsr__system_5259)2332 static N_INLINE(void*, cellToUsr__system_5259)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* cell) {
2333 	void* result;
2334 	NI T1_;
2335 	result = (void*)0;
2336 	T1_ = (NI)0;
2337 	T1_ = pluspercent___system_696(((NI) (ptrdiff_t) (cell)), ((NI) 8));
2338 	result = ((void*) (T1_));
2339 	return result;
2340 }
N_NIMCALL(NU,getDiscriminant__system_3607)2341 N_LIB_PRIVATE N_NIMCALL(NU, getDiscriminant__system_3607)(void* aa, TNimNode* n) {
2342 	NU result;
2343 	NU d;
2344 	NU a;
2345 {	result = (NU)0;
2346 	d = (NU)0;
2347 	a = ((NU) (ptrdiff_t) (aa));
2348 	switch ((*(*n).typ).size) {
2349 	case ((NI) 1):
2350 	{
2351 		d = ((NU) ((*((NU8*) ((NU)((NU32)(a) + (NU32)(((NU) ((*n).offset)))))))));
2352 	}
2353 	break;
2354 	case ((NI) 2):
2355 	{
2356 		d = ((NU) ((*((NU16*) ((NU)((NU32)(a) + (NU32)(((NU) ((*n).offset)))))))));
2357 	}
2358 	break;
2359 	case ((NI) 4):
2360 	{
2361 		d = ((NU) ((*((NU32*) ((NU)((NU32)(a) + (NU32)(((NU) ((*n).offset)))))))));
2362 	}
2363 	break;
2364 	case ((NI) 8):
2365 	{
2366 		d = ((NU) ((*((NU64*) ((NU)((NU32)(a) + (NU32)(((NU) ((*n).offset)))))))));
2367 	}
2368 	break;
2369 	default:
2370 	{
2371 		d = ((NU) 0);
2372 	}
2373 	break;
2374 	}
2375 	result = d;
2376 	goto BeforeRet_;
2377 	}BeforeRet_: ;
2378 	return result;
2379 }
N_NIMCALL(TNimNode *,selectBranch__system_3645)2380 N_LIB_PRIVATE N_NIMCALL(TNimNode*, selectBranch__system_3645)(void* aa, TNimNode* n) {
2381 	TNimNode* result;
2382 	NU discr;
2383 	result = (TNimNode*)0;
2384 	discr = getDiscriminant__system_3607(aa, n);
2385 	{
2386 		if (!((NU32)(discr) < (NU32)(((NU) ((*n).len))))) goto LA3_;
2387 		result = (*n).sons[(discr)- 0];
2388 		{
2389 			if (!(result == ((TNimNode*) NIM_NIL))) goto LA7_;
2390 			result = (*n).sons[((*n).len)- 0];
2391 		}
2392 		LA7_: ;
2393 	}
2394 	goto LA1_;
2395 	LA3_: ;
2396 	{
2397 		result = (*n).sons[((*n).len)- 0];
2398 	}
2399 	LA1_: ;
2400 	return result;
2401 }
N_NIMCALL(void,forAllSlotsAux__system_5527)2402 N_LIB_PRIVATE N_NIMCALL(void, forAllSlotsAux__system_5527)(void* dest, TNimNode* n, tyEnum_WalkOp__Wfy7gT5VQ8B3aJBxqU8D9cQ op) {
2403 	NI d;
2404 	d = ((NI) (ptrdiff_t) (dest));
2405 	switch ((*n).kind) {
2406 	case ((tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ) 1):
2407 	{
2408 		NI T2_;
2409 		T2_ = (NI)0;
2410 		T2_ = pluspercent___system_696(d, (*n).offset);
2411 		forAllChildrenAux__system_5296(((void*) (T2_)), (*n).typ, op);
2412 	}
2413 	break;
2414 	case ((tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ) 2):
2415 	{
2416 		{
2417 			NI i;
2418 			NI colontmp_;
2419 			NI res;
2420 			i = (NI)0;
2421 			colontmp_ = (NI)0;
2422 			colontmp_ = (NI)((*n).len - ((NI) 1));
2423 			res = ((NI) 0);
2424 			{
2425 				while (1) {
2426 					if (!(res <= colontmp_)) goto LA6;
2427 					i = res;
2428 					{
2429 						if (!((*(*n).sons[(i)- 0]).kind == ((tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ) 1))) goto LA9_;
2430 						{
2431 							NI T15_;
2432 							if (!((*(*(*n).sons[(i)- 0]).typ).kind == ((tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A) 22) || (*(*(*n).sons[(i)- 0]).typ).kind == ((tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A) 28) || (*(*(*n).sons[(i)- 0]).typ).kind == ((tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A) 24))) goto LA13_;
2433 							T15_ = (NI)0;
2434 							T15_ = pluspercent___system_696(d, (*(*n).sons[(i)- 0]).offset);
2435 							doOperation__system_5293((*((void**) (T15_))), op);
2436 						}
2437 						goto LA11_;
2438 						LA13_: ;
2439 						{
2440 							NI T17_;
2441 							T17_ = (NI)0;
2442 							T17_ = pluspercent___system_696(d, (*(*n).sons[(i)- 0]).offset);
2443 							forAllChildrenAux__system_5296(((void*) (T17_)), (*(*n).sons[(i)- 0]).typ, op);
2444 						}
2445 						LA11_: ;
2446 					}
2447 					goto LA7_;
2448 					LA9_: ;
2449 					{
2450 						forAllSlotsAux__system_5527(dest, (*n).sons[(i)- 0], op);
2451 					}
2452 					LA7_: ;
2453 					res += ((NI) 1);
2454 				} LA6: ;
2455 			}
2456 		}
2457 	}
2458 	break;
2459 	case ((tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ) 3):
2460 	{
2461 		TNimNode* m;
2462 		m = selectBranch__system_3645(dest, n);
2463 		{
2464 			if (!!((m == ((TNimNode*) NIM_NIL)))) goto LA22_;
2465 			forAllSlotsAux__system_5527(dest, m, op);
2466 		}
2467 		LA22_: ;
2468 	}
2469 	break;
2470 	case ((tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ) 0):
2471 	{
2472 	}
2473 	break;
2474 	}
2475 }
N_INLINE(NI,starpercent___system_736)2476 static N_INLINE(NI, starpercent___system_736)(NI x, NI y) {
2477 	NI result;
2478 	result = (NI)0;
2479 	result = ((NI) ((NU)((NU32)(((NU) (x))) * (NU32)(((NU) (y))))));
2480 	return result;
2481 }
N_NIMCALL(void,forAllChildrenAux__system_5296)2482 N_LIB_PRIVATE N_NIMCALL(void, forAllChildrenAux__system_5296)(void* dest, TNimType* mt, tyEnum_WalkOp__Wfy7gT5VQ8B3aJBxqU8D9cQ op) {
2483 	NI d;
2484 {	d = ((NI) (ptrdiff_t) (dest));
2485 	{
2486 		if (!(dest == NIM_NIL)) goto LA3_;
2487 		goto BeforeRet_;
2488 	}
2489 	LA3_: ;
2490 	{
2491 		if (!!((((*mt).flags &((NU8)1<<((NU)(((tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ) 0))&7U)))!=0))) goto LA7_;
2492 		switch ((*mt).kind) {
2493 		case ((tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A) 22):
2494 		case ((tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A) 28):
2495 		case ((tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A) 24):
2496 		{
2497 			doOperation__system_5293((*((void**) (d))), op);
2498 		}
2499 		break;
2500 		case ((tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A) 17):
2501 		case ((tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A) 18):
2502 		{
2503 			forAllSlotsAux__system_5527(dest, (*mt).node, op);
2504 		}
2505 		break;
2506 		case ((tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A) 16):
2507 		case ((tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A) 4):
2508 		case ((tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A) 27):
2509 		{
2510 			{
2511 				NI i;
2512 				NI colontmp_;
2513 				NI res;
2514 				i = (NI)0;
2515 				colontmp_ = (NI)0;
2516 				colontmp_ = (NI)((NI)((*mt).size / (*(*mt).base).size) - ((NI) 1));
2517 				res = ((NI) 0);
2518 				{
2519 					while (1) {
2520 						NI T15_;
2521 						NI T16_;
2522 						if (!(res <= colontmp_)) goto LA14;
2523 						i = res;
2524 						T15_ = (NI)0;
2525 						T15_ = starpercent___system_736(i, (*(*mt).base).size);
2526 						T16_ = (NI)0;
2527 						T16_ = pluspercent___system_696(d, T15_);
2528 						forAllChildrenAux__system_5296(((void*) (T16_)), (*mt).base, op);
2529 						res += ((NI) 1);
2530 					} LA14: ;
2531 				}
2532 			}
2533 		}
2534 		break;
2535 		default:
2536 		{
2537 		}
2538 		break;
2539 		}
2540 	}
2541 	LA7_: ;
2542 	}BeforeRet_: ;
2543 }
N_NIMCALL(NI,align__system_1624)2544 N_LIB_PRIVATE N_NIMCALL(NI, align__system_1624)(NI address, NI alignment) {
2545 	NI result;
2546 	result = (NI)0;
2547 	{
2548 		if (!(alignment == ((NI) 0))) goto LA3_;
2549 		result = address;
2550 	}
2551 	goto LA1_;
2552 	LA3_: ;
2553 	{
2554 		result = (NI)((NI)(address + (NI)(alignment - ((NI) 1))) & (NI)((NU32) ~((NI)(alignment - ((NI) 1)))));
2555 	}
2556 	LA1_: ;
2557 	return result;
2558 }
N_NIMCALL(void,forAllChildren__system_5290)2559 N_LIB_PRIVATE N_NIMCALL(void, forAllChildren__system_5290)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* cell, tyEnum_WalkOp__Wfy7gT5VQ8B3aJBxqU8D9cQ op) {
2560 	tyProc__ojoeKfW4VYIm36I9cpDTQIg marker;
2561 	marker = (*(*cell).typ).marker;
2562 	{
2563 		void* T5_;
2564 		if (!!((marker == NIM_NIL))) goto LA3_;
2565 		T5_ = (void*)0;
2566 		T5_ = cellToUsr__system_5259(cell);
2567 		marker(T5_, ((NI) (op)));
2568 	}
2569 	goto LA1_;
2570 	LA3_: ;
2571 	{
2572 		switch ((*(*cell).typ).kind) {
2573 		case ((tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A) 22):
2574 		{
2575 			void* T8_;
2576 			T8_ = (void*)0;
2577 			T8_ = cellToUsr__system_5259(cell);
2578 			forAllChildrenAux__system_5296(T8_, (*(*cell).typ).base, op);
2579 		}
2580 		break;
2581 		case ((tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A) 24):
2582 		{
2583 			NI d;
2584 			void* T10_;
2585 			TGenericSeq* s;
2586 			T10_ = (void*)0;
2587 			T10_ = cellToUsr__system_5259(cell);
2588 			d = ((NI) (ptrdiff_t) (T10_));
2589 			s = ((TGenericSeq*) (d));
2590 			{
2591 				if (!!((s == ((TGenericSeq*) NIM_NIL)))) goto LA13_;
2592 				{
2593 					NI i;
2594 					NI colontmp_;
2595 					NI res;
2596 					i = (NI)0;
2597 					colontmp_ = (NI)0;
2598 					colontmp_ = (NI)((*s).len - ((NI) 1));
2599 					res = ((NI) 0);
2600 					{
2601 						while (1) {
2602 							NI T18_;
2603 							NI T19_;
2604 							NI T20_;
2605 							NI T21_;
2606 							if (!(res <= colontmp_)) goto LA17;
2607 							i = res;
2608 							T18_ = (NI)0;
2609 							T18_ = align__system_1624(((NI) 8), (*(*(*cell).typ).base).align);
2610 							T19_ = (NI)0;
2611 							T19_ = pluspercent___system_696(d, T18_);
2612 							T20_ = (NI)0;
2613 							T20_ = starpercent___system_736(i, (*(*(*cell).typ).base).size);
2614 							T21_ = (NI)0;
2615 							T21_ = pluspercent___system_696(T19_, T20_);
2616 							forAllChildrenAux__system_5296(((void*) (T21_)), (*(*cell).typ).base, op);
2617 							res += ((NI) 1);
2618 						} LA17: ;
2619 					}
2620 				}
2621 			}
2622 			LA13_: ;
2623 		}
2624 		break;
2625 		default:
2626 		{
2627 		}
2628 		break;
2629 		}
2630 	}
2631 	LA1_: ;
2632 }
N_NIMCALL(tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg *,cellSetGet__system_4915)2633 N_LIB_PRIVATE N_NIMCALL(tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg*, cellSetGet__system_4915)(tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ t, NU key) {
2634 	tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg* result;
2635 	NI h;
2636 {	result = (tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg*)0;
2637 	h = (NI)(((NI) (key)) & t.max);
2638 	{
2639 		while (1) {
2640 			if (!!((t.data[h] == ((tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg*) NIM_NIL)))) goto LA2;
2641 			{
2642 				if (!((*t.data[h]).key == key)) goto LA5_;
2643 				result = t.data[h];
2644 				goto BeforeRet_;
2645 			}
2646 			LA5_: ;
2647 			h = nextTry__system_4911(h, t.max);
2648 		} LA2: ;
2649 	}
2650 	result = ((tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg*) NIM_NIL);
2651 	goto BeforeRet_;
2652 	}BeforeRet_: ;
2653 	return result;
2654 }
N_NIMCALL(NIM_BOOL,containsOrIncl__system_5054)2655 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, containsOrIncl__system_5054)(tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ* s, tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* cell) {
2656 	NIM_BOOL result;
2657 	NU u;
2658 	tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg* t;
2659 	result = (NIM_BOOL)0;
2660 	u = ((NU) (ptrdiff_t) (cell));
2661 	t = cellSetGet__system_4915((*s), (NU)((NU32)(u) >> (NU32)(((NI) 12))));
2662 	{
2663 		if (!!((t == ((tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg*) NIM_NIL)))) goto LA3_;
2664 		u = (NU)((NU32)((NU)((NU32)(u) % (NU32)(((NU) 4096)))) / (NU32)(((NU) 16)));
2665 		result = !(((NI)((*t).bits[((NU)((NU32)(u) >> (NU32)(((NI) 5))))- 0] & (NI)((NU32)(((NI) 1)) << (NU32)((NU)(u & ((NU) 31))))) == ((NI) 0)));
2666 		{
2667 			if (!!(result)) goto LA7_;
2668 			(*t).bits[((NU)((NU32)(u) >> (NU32)(((NI) 5))))- 0] = (NI)((*t).bits[((NU)((NU32)(u) >> (NU32)(((NI) 5))))- 0] | (NI)((NU32)(((NI) 1)) << (NU32)((NU)(u & ((NU) 31)))));
2669 		}
2670 		LA7_: ;
2671 	}
2672 	goto LA1_;
2673 	LA3_: ;
2674 	{
2675 		incl__system_5008(s, cell);
2676 		result = NIM_FALSE;
2677 	}
2678 	LA1_: ;
2679 	return result;
2680 }
N_NIMCALL(void,markS__system_5711)2681 N_LIB_PRIVATE N_NIMCALL(void, markS__system_5711)(tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ* gch, tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
2682 	incl__system_5008((&(*gch).marked), c);
2683 	forAllChildren__system_5290(c, ((tyEnum_WalkOp__Wfy7gT5VQ8B3aJBxqU8D9cQ) 1));
2684 	{
2685 		while (1) {
2686 			tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* d;
2687 			if (!(((NI) 0) < (*gch).tempStack.len)) goto LA2;
2688 			(*gch).tempStack.len -= ((NI) 1);
2689 			d = (*gch).tempStack.d[(*gch).tempStack.len];
2690 			{
2691 				NIM_BOOL T5_;
2692 				T5_ = (NIM_BOOL)0;
2693 				T5_ = containsOrIncl__system_5054((&(*gch).marked), d);
2694 				if (!!(T5_)) goto LA6_;
2695 				forAllChildren__system_5290(d, ((tyEnum_WalkOp__Wfy7gT5VQ8B3aJBxqU8D9cQ) 1));
2696 			}
2697 			LA6_: ;
2698 		} LA2: ;
2699 	}
2700 }
N_NIMCALL(void,doOperation__system_5293)2701 N_LIB_PRIVATE N_NIMCALL(void, doOperation__system_5293)(void* p, tyEnum_WalkOp__Wfy7gT5VQ8B3aJBxqU8D9cQ op) {
2702 	tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c;
2703 {	{
2704 		if (!(p == NIM_NIL)) goto LA3_;
2705 		goto BeforeRet_;
2706 	}
2707 	LA3_: ;
2708 	c = usrToCell__system_5262(p);
2709 	switch (op) {
2710 	case ((tyEnum_WalkOp__Wfy7gT5VQ8B3aJBxqU8D9cQ) 2):
2711 	{
2712 		decRef__system_5307(c);
2713 	}
2714 	break;
2715 	case ((tyEnum_WalkOp__Wfy7gT5VQ8B3aJBxqU8D9cQ) 3):
2716 	{
2717 		add__system_4851((&gch__system_5209.tempStack), c);
2718 	}
2719 	break;
2720 	case ((tyEnum_WalkOp__Wfy7gT5VQ8B3aJBxqU8D9cQ) 0):
2721 	{
2722 		markS__system_5711((&gch__system_5209), c);
2723 	}
2724 	break;
2725 	case ((tyEnum_WalkOp__Wfy7gT5VQ8B3aJBxqU8D9cQ) 1):
2726 	{
2727 		add__system_4851((&gch__system_5209.tempStack), c);
2728 	}
2729 	break;
2730 	}
2731 	}BeforeRet_: ;
2732 }
N_NIMCALL(void,nimGCvisit)2733 N_LIB_PRIVATE N_NIMCALL(void, nimGCvisit)(void* d, NI op) {
2734 	doOperation__system_5293(d, ((tyEnum_WalkOp__Wfy7gT5VQ8B3aJBxqU8D9cQ) (op)));
2735 }
N_NIMCALL(void,Marker_tyRef__vU9aO9cTqOMn6CBzhV8rX7Sw)2736 static N_NIMCALL(void, Marker_tyRef__vU9aO9cTqOMn6CBzhV8rX7Sw)(void* p, NI op) {
2737 	Exception* a;
2738 	a = (Exception*)p;
2739 	nimGCvisit((void*)(*a).parent, op);
2740 	nimGCvisit((void*)(*a).message, op);
2741 	nimGCvisit((void*)(*a).trace, op);
2742 	nimGCvisit((void*)(*a).up, op);
2743 }
N_NIMCALL(void,TM__Q5wkpxktOdTGvlSRo9bzt9aw_4)2744 static N_NIMCALL(void, TM__Q5wkpxktOdTGvlSRo9bzt9aw_4)(void) {
2745 	nimGCvisit((void*)currException__system_2566, 0);
2746 }
N_NIMCALL(void,nimRegisterThreadLocalMarker)2747 N_LIB_PRIVATE N_NIMCALL(void, nimRegisterThreadLocalMarker)(tyProc__T4eqaYlFJYZUv9aG9b1TV0bQ markerProc) {
2748 	{
2749 		if (!(threadLocalMarkersLen <= ((NI) 3499))) goto LA3_;
2750 		threadLocalMarkers[(threadLocalMarkersLen)- 0] = markerProc;
2751 		threadLocalMarkersLen += ((NI) 1);
2752 	}
2753 	goto LA1_;
2754 	LA3_: ;
2755 	{
2756 		rawWrite(stderr, "[GC] cannot register thread local variable; too many thread local variables");
2757 		exit(((NI) 1));
2758 	}
2759 	LA1_: ;
2760 }
N_INLINE(void,pushSafePoint)2761 static N_INLINE(void, pushSafePoint)(TSafePoint* s) {
2762 	(*s).prev = excHandler__system_2565;
2763 	excHandler__system_2565 = s;
2764 }
N_INLINE(NI,getOccupiedMem__system_4811)2765 static N_INLINE(NI, getOccupiedMem__system_4811)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a) {
2766 	NI result;
2767 	result = (NI)0;
2768 	result = (*a).occ;
2769 	return result;
2770 }
N_NOINLINE(NI,stackSize__system_5376)2771 N_LIB_PRIVATE N_NOINLINE(NI, stackSize__system_5376)(tyObject_GcStack__7fytPA5bBsob6See21YMRA* stack) {
2772 	NI result;
2773 	void* volatile pos;
2774 	result = (NI)0;
2775 	pos = ((void*) ((&pos)));
2776 	{
2777 		if (!!((pos == NIM_NIL))) goto LA3_;
2778 		result = minuspercent___system_716(((NI) (ptrdiff_t) ((*stack).bottom)), ((NI) (ptrdiff_t) (pos)));
2779 	}
2780 	goto LA1_;
2781 	LA3_: ;
2782 	{
2783 		result = ((NI) 0);
2784 	}
2785 	LA1_: ;
2786 	return result;
2787 }
N_NOINLINE(NI,stackSize__system_5380)2788 N_LIB_PRIVATE N_NOINLINE(NI, stackSize__system_5380)(void) {
2789 	NI result;
2790 	result = (NI)0;
2791 	result = ((NI) 0);
2792 	{
2793 		tyObject_GcStack__7fytPA5bBsob6See21YMRA* stack;
2794 		NI T2_;
2795 		stack = (tyObject_GcStack__7fytPA5bBsob6See21YMRA*)0;
2796 		stack = (&gch__system_5209.stack);
2797 		T2_ = (NI)0;
2798 		T2_ = stackSize__system_5376(stack);
2799 		result = (NI)(result + T2_);
2800 	}
2801 	return result;
2802 }
N_NIMCALL(NI,lowGauge__system_4099)2803 N_LIB_PRIVATE N_NIMCALL(NI, lowGauge__system_4099)(tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* n) {
2804 	NI result;
2805 	tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* it;
2806 	result = (NI)0;
2807 	it = n;
2808 	{
2809 		while (1) {
2810 			if (!!(((*it).link[(((NI) 0))- 0] == it))) goto LA2;
2811 			result = (*it).key;
2812 			it = (*it).link[(((NI) 0))- 0];
2813 		} LA2: ;
2814 	}
2815 	return result;
2816 }
N_NIMCALL(NI,highGauge__system_4107)2817 N_LIB_PRIVATE N_NIMCALL(NI, highGauge__system_4107)(tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* n) {
2818 	NI result;
2819 	tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* it;
2820 	result = (NI)0;
2821 	result = ((NI) -1);
2822 	it = n;
2823 	{
2824 		while (1) {
2825 			if (!!(((*it).link[(((NI) 0))- 0] == it))) goto LA2;
2826 			result = (*it).upperBound;
2827 			it = (*it).link[(((NI) 1))- 0];
2828 		} LA2: ;
2829 	}
2830 	return result;
2831 }
N_INLINE(void,prepareForInteriorPointerChecking__system_4732)2832 static N_INLINE(void, prepareForInteriorPointerChecking__system_4732)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a) {
2833 	(*a).minLargeObj = lowGauge__system_4099((*a).root);
2834 	(*a).maxLargeObj = highGauge__system_4107((*a).root);
2835 }
N_INLINE(NI,percentpercent___system_776)2836 static N_INLINE(NI, percentpercent___system_776)(NI x, NI y) {
2837 	NI result;
2838 	result = (NI)0;
2839 	result = ((NI) ((NU)((NU32)(((NU) (x))) % (NU32)(((NU) (y))))));
2840 	return result;
2841 }
N_INLINE(NIM_BOOL,lteqpercent___system_985)2842 static N_INLINE(NIM_BOOL, lteqpercent___system_985)(NI x, NI y) {
2843 	NIM_BOOL result;
2844 	result = (NIM_BOOL)0;
2845 	result = ((NU32)(((NU) (x))) <= (NU32)(((NU) (y))));
2846 	return result;
2847 }
N_NIMCALL(tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw *,inRange__system_4127)2848 N_LIB_PRIVATE N_NIMCALL(tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw*, inRange__system_4127)(tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* root, NI key) {
2849 	tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* result;
2850 	tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* it;
2851 {	result = (tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw*)0;
2852 	it = root;
2853 	{
2854 		while (1) {
2855 			NIM_BOOL T9_;
2856 			if (!!(((*it).link[(((NI) 0))- 0] == it))) goto LA2;
2857 			{
2858 				NIM_BOOL T5_;
2859 				T5_ = (NIM_BOOL)0;
2860 				T5_ = lteqpercent___system_985((*it).key, key);
2861 				if (!(T5_)) goto LA6_;
2862 				T5_ = ltpercent___system_1005(key, (*it).upperBound);
2863 				LA6_: ;
2864 				if (!T5_) goto LA7_;
2865 				result = it;
2866 				goto BeforeRet_;
2867 			}
2868 			LA7_: ;
2869 			T9_ = (NIM_BOOL)0;
2870 			T9_ = ltpercent___system_1005((*it).key, key);
2871 			it = (*it).link[(T9_)- 0];
2872 		} LA2: ;
2873 	}
2874 	}BeforeRet_: ;
2875 	return result;
2876 }
N_NIMCALL(void *,interiorAllocatedPtr__system_4734)2877 N_LIB_PRIVATE N_NIMCALL(void*, interiorAllocatedPtr__system_4734)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, void* p) {
2878 	void* result;
2879 	result = (void*)0;
2880 	{
2881 		NIM_BOOL T3_;
2882 		tyObject_BaseChunk__Sdq7WpT6qAH858F5ZEdG3w* c;
2883 		T3_ = (NIM_BOOL)0;
2884 		T3_ = isAccessible__system_4453(a, p);
2885 		if (!T3_) goto LA4_;
2886 		c = pageAddr__system_4426(p);
2887 		{
2888 			NIM_BOOL T8_;
2889 			T8_ = (NIM_BOOL)0;
2890 			T8_ = chunkUnused__system_4343(c);
2891 			if (!!(T8_)) goto LA9_;
2892 			{
2893 				NIM_BOOL T13_;
2894 				tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ* c_2;
2895 				NI offset;
2896 				T13_ = (NIM_BOOL)0;
2897 				T13_ = isSmallChunk__system_4337(c);
2898 				if (!T13_) goto LA14_;
2899 				c_2 = ((tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ*) (c));
2900 				offset = minuspercent___system_716((NI)(((NI) (ptrdiff_t) (p)) & ((NI) 4095)), ((NI) 32));
2901 				{
2902 					NIM_BOOL T18_;
2903 					tyObject_FreeCell__u6M5LHprqzkn9axr04yg9bGQ* d;
2904 					NI T21_;
2905 					NI T22_;
2906 					NI T23_;
2907 					T18_ = (NIM_BOOL)0;
2908 					T18_ = ltpercent___system_1005(offset, (*c_2).acc);
2909 					if (!T18_) goto LA19_;
2910 					T21_ = (NI)0;
2911 					T21_ = pluspercent___system_696(((NI) (ptrdiff_t) ((*c_2).data)), offset);
2912 					T22_ = (NI)0;
2913 					T22_ = percentpercent___system_776(offset, (*c_2).Sup.size);
2914 					T23_ = (NI)0;
2915 					T23_ = minuspercent___system_716(T21_, T22_);
2916 					d = ((tyObject_FreeCell__u6M5LHprqzkn9axr04yg9bGQ*) (T23_));
2917 					{
2918 						NIM_BOOL T26_;
2919 						T26_ = (NIM_BOOL)0;
2920 						T26_ = ltpercent___system_1005(((NI) 1), (*d).zeroField);
2921 						if (!T26_) goto LA27_;
2922 						result = ((void*) (d));
2923 					}
2924 					LA27_: ;
2925 				}
2926 				LA19_: ;
2927 			}
2928 			goto LA11_;
2929 			LA14_: ;
2930 			{
2931 				tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* c_3;
2932 				NU8* d_2;
2933 				c_3 = ((tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*) (c));
2934 				d_2 = (*c_3).data;
2935 				{
2936 					NIM_BOOL T32_;
2937 					T32_ = (NIM_BOOL)0;
2938 					T32_ = (((void*) (d_2)) <= p);
2939 					if (!(T32_)) goto LA33_;
2940 					T32_ = ltpercent___system_1005(((NI) 1), (*((tyObject_FreeCell__u6M5LHprqzkn9axr04yg9bGQ*) (d_2))).zeroField);
2941 					LA33_: ;
2942 					if (!T32_) goto LA34_;
2943 					result = ((void*) (d_2));
2944 				}
2945 				LA34_: ;
2946 			}
2947 			LA11_: ;
2948 		}
2949 		LA9_: ;
2950 	}
2951 	goto LA1_;
2952 	LA4_: ;
2953 	{
2954 		NI q;
2955 		q = ((NI) (ptrdiff_t) (p));
2956 		{
2957 			NIM_BOOL T39_;
2958 			tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* avlNode;
2959 			T39_ = (NIM_BOOL)0;
2960 			T39_ = lteqpercent___system_985((*a).minLargeObj, q);
2961 			if (!(T39_)) goto LA40_;
2962 			T39_ = lteqpercent___system_985(q, (*a).maxLargeObj);
2963 			LA40_: ;
2964 			if (!T39_) goto LA41_;
2965 			avlNode = inRange__system_4127((*a).root, q);
2966 			{
2967 				void* k;
2968 				tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* c_4;
2969 				tyObject_BaseChunk__Sdq7WpT6qAH858F5ZEdG3w* T47_;
2970 				if (!!((avlNode == ((tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw*) NIM_NIL)))) goto LA45_;
2971 				k = ((void*) ((*avlNode).key));
2972 				T47_ = (tyObject_BaseChunk__Sdq7WpT6qAH858F5ZEdG3w*)0;
2973 				T47_ = pageAddr__system_4426(k);
2974 				c_4 = ((tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*) (T47_));
2975 				{
2976 					NIM_BOOL T50_;
2977 					T50_ = (NIM_BOOL)0;
2978 					T50_ = ltpercent___system_1005(((NI) 1), (*((tyObject_FreeCell__u6M5LHprqzkn9axr04yg9bGQ*) (k))).zeroField);
2979 					if (!T50_) goto LA51_;
2980 					result = k;
2981 				}
2982 				LA51_: ;
2983 			}
2984 			LA45_: ;
2985 		}
2986 		LA41_: ;
2987 	}
2988 	LA1_: ;
2989 	return result;
2990 }
N_INLINE(void,incRef__system_5300)2991 static N_INLINE(void, incRef__system_5300)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
2992 	(*c).refcount = pluspercent___system_696((*c).refcount, ((NI) 8));
2993 }
N_INLINE(void,gcMark__system_5760)2994 static N_INLINE(void, gcMark__system_5760)(tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ* gch, void* p) {
2995 	NI c;
2996 	c = ((NI) (ptrdiff_t) (p));
2997 	{
2998 		NIM_BOOL T3_;
2999 		tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* objStart;
3000 		void* T6_;
3001 		T3_ = (NIM_BOOL)0;
3002 		T3_ = ltpercent___system_1005(((NI) 4096), c);
3003 		if (!T3_) goto LA4_;
3004 		T6_ = (void*)0;
3005 		T6_ = interiorAllocatedPtr__system_4734((&(*gch).region), p);
3006 		objStart = ((tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*) (T6_));
3007 		{
3008 			if (!!((objStart == ((tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*) NIM_NIL)))) goto LA9_;
3009 			incRef__system_5300(objStart);
3010 			add__system_4851((&(*gch).decStack), objStart);
3011 		}
3012 		LA9_: ;
3013 	}
3014 	LA4_: ;
3015 }
markStackAndRegisters__system_5769(tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ * gch)3016 CLANG_NO_SANITIZE_ADDRESS N_LIB_PRIVATE void markStackAndRegisters__system_5769(tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ* gch) {
3017 	void* max;
3018 	void** sp;
3019 	tyArray__nySJCmQz9aRlAQeu3WJUx9cQ stackTop;
3020 	asm("ta      0x3   ! ST_FLUSH_WINDOWS\n"
3021 );
3022 	max = (*gch).stack.bottom;
3023 	sp = (void**)0;
3024 	nimZeroMem((void*)stackTop, sizeof(tyArray__nySJCmQz9aRlAQeu3WJUx9cQ));
3025 	sp = (&stackTop[(((NI) 0))- 0]);
3026 	{
3027 		while (1) {
3028 			NI T3_;
3029 			if (!(((void*) (sp)) <= max)) goto LA2;
3030 			gcMark__system_5760(gch, (*sp));
3031 			T3_ = (NI)0;
3032 			T3_ = pluspercent___system_696(((NI) (ptrdiff_t) (sp)), ((NI) 4));
3033 			sp = ((void**) (T3_));
3034 		} LA2: ;
3035 	}
3036 }
N_NIMCALL(void,prepareDealloc__system_5422)3037 N_LIB_PRIVATE N_NIMCALL(void, prepareDealloc__system_5422)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* cell) {
3038 	TNimType* t;
3039 	t = (*cell).typ;
3040 	{
3041 		void* T5_;
3042 		if (!!(((*t).finalizer == NIM_NIL))) goto LA3_;
3043 		gch__system_5209.recGcLock += ((NI) 1);
3044 		T5_ = (void*)0;
3045 		T5_ = cellToUsr__system_5259(cell);
3046 		((Finalizer) ((*t).finalizer))(T5_);
3047 		gch__system_5209.recGcLock -= ((NI) 1);
3048 	}
3049 	LA3_: ;
3050 }
N_NIMCALL(NIM_BOOL,collectZCT__system_5750)3051 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, collectZCT__system_5750)(tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ* gch) {
3052 	NIM_BOOL result;
3053 	NI* L;
3054 	result = (NIM_BOOL)0;
3055 	L = (&(*gch).zct.len);
3056 	{
3057 		while (1) {
3058 			tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c;
3059 			if (!(((NI) 0) < (*L))) goto LA2;
3060 			c = (*gch).zct.d[((NI) 0)];
3061 			(*c).refcount = (NI)((*c).refcount & ((NI) -5));
3062 			(*gch).zct.d[((NI) 0)] = (*gch).zct.d[(NI)((*L) - ((NI) 1))];
3063 			(*L) -= ((NI) 1);
3064 			{
3065 				NIM_BOOL T5_;
3066 				T5_ = (NIM_BOOL)0;
3067 				T5_ = ltpercent___system_1005((*c).refcount, ((NI) 8));
3068 				if (!T5_) goto LA6_;
3069 				prepareDealloc__system_5422(c);
3070 				forAllChildren__system_5290(c, ((tyEnum_WalkOp__Wfy7gT5VQ8B3aJBxqU8D9cQ) 2));
3071 				rawDealloc__system_4680((&(*gch).region), ((void*) (c)));
3072 			}
3073 			LA6_: ;
3074 		} LA2: ;
3075 	}
3076 	result = NIM_TRUE;
3077 	return result;
3078 }
N_NIMCALL(void,deinit__system_4903)3079 N_LIB_PRIVATE N_NIMCALL(void, deinit__system_4903)(tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ* s) {
3080 	tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg* it;
3081 	it = (*s).head;
3082 	{
3083 		while (1) {
3084 			tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg* n;
3085 			if (!!((it == ((tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg*) NIM_NIL)))) goto LA2;
3086 			n = (*it).next;
3087 			dealloc(((void*) (it)));
3088 			it = n;
3089 		} LA2: ;
3090 	}
3091 	(*s).head = ((tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg*) NIM_NIL);
3092 	dealloc(((void*) ((*s).data)));
3093 	(*s).data = ((tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg**) NIM_NIL);
3094 	(*s).counter = ((NI) 0);
3095 }
N_NIMCALL(void,cellsetReset__system_5525)3096 N_LIB_PRIVATE N_NIMCALL(void, cellsetReset__system_5525)(tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ* s) {
3097 	deinit__system_4903(s);
3098 	init__system_4883(s);
3099 }
N_NIMCALL(void,markGlobals__system_5719)3100 N_LIB_PRIVATE N_NIMCALL(void, markGlobals__system_5719)(tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ* gch) {
3101 	tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g** d;
3102 	{
3103 		if (!((*gch).gcThreadId == ((NI) 0))) goto LA3_;
3104 		{
3105 			NI i;
3106 			NI colontmp_;
3107 			NI res;
3108 			i = (NI)0;
3109 			colontmp_ = (NI)0;
3110 			colontmp_ = (NI)(globalMarkersLen - ((NI) 1));
3111 			res = ((NI) 0);
3112 			{
3113 				while (1) {
3114 					if (!(res <= colontmp_)) goto LA7;
3115 					i = res;
3116 					globalMarkers[(i)- 0]();
3117 					res += ((NI) 1);
3118 				} LA7: ;
3119 			}
3120 		}
3121 	}
3122 	LA3_: ;
3123 	{
3124 		NI i_2;
3125 		NI colontmp__2;
3126 		NI res_2;
3127 		i_2 = (NI)0;
3128 		colontmp__2 = (NI)0;
3129 		colontmp__2 = (NI)(threadLocalMarkersLen - ((NI) 1));
3130 		res_2 = ((NI) 0);
3131 		{
3132 			while (1) {
3133 				if (!(res_2 <= colontmp__2)) goto LA10;
3134 				i_2 = res_2;
3135 				threadLocalMarkers[(i_2)- 0]();
3136 				res_2 += ((NI) 1);
3137 			} LA10: ;
3138 		}
3139 	}
3140 	d = (*gch).additionalRoots.d;
3141 	{
3142 		NI i_3;
3143 		NI colontmp__3;
3144 		NI res_3;
3145 		i_3 = (NI)0;
3146 		colontmp__3 = (NI)0;
3147 		colontmp__3 = (NI)((*gch).additionalRoots.len - ((NI) 1));
3148 		res_3 = ((NI) 0);
3149 		{
3150 			while (1) {
3151 				if (!(res_3 <= colontmp__3)) goto LA13;
3152 				i_3 = res_3;
3153 				markS__system_5711(gch, d[i_3]);
3154 				res_3 += ((NI) 1);
3155 			} LA13: ;
3156 		}
3157 	}
3158 }
N_INLINE(NIM_BOOL,isCell__system_4400)3159 static N_INLINE(NIM_BOOL, isCell__system_4400)(void* p) {
3160 	NIM_BOOL result;
3161 	result = (NIM_BOOL)0;
3162 	result = ltpercent___system_1005(((NI) 1), (*((tyObject_FreeCell__u6M5LHprqzkn9axr04yg9bGQ*) (p))).zeroField);
3163 	return result;
3164 }
N_NIMCALL(NIM_BOOL,contains__system_4976)3165 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, contains__system_4976)(tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ s, tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* cell) {
3166 	NIM_BOOL result;
3167 	NU u;
3168 	tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg* t;
3169 	result = (NIM_BOOL)0;
3170 	u = ((NU) (ptrdiff_t) (cell));
3171 	t = cellSetGet__system_4915(s, (NU)((NU32)(u) >> (NU32)(((NI) 12))));
3172 	{
3173 		if (!!((t == ((tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg*) NIM_NIL)))) goto LA3_;
3174 		u = (NU)((NU32)((NU)((NU32)(u) % (NU32)(((NU) 4096)))) / (NU32)(((NU) 16)));
3175 		result = !(((NI)((*t).bits[((NU)((NU32)(u) >> (NU32)(((NI) 5))))- 0] & (NI)((NU32)(((NI) 1)) << (NU32)((NU)(u & ((NU) 31))))) == ((NI) 0)));
3176 	}
3177 	goto LA1_;
3178 	LA3_: ;
3179 	{
3180 		result = NIM_FALSE;
3181 	}
3182 	LA1_: ;
3183 	return result;
3184 }
N_NIMCALL(void,freeCyclicCell__system_5703)3185 N_LIB_PRIVATE N_NIMCALL(void, freeCyclicCell__system_5703)(tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ* gch, tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
3186 	prepareDealloc__system_5422(c);
3187 	rawDealloc__system_4680((&(*gch).region), ((void*) (c)));
3188 }
N_NIMCALL(void,sweep__system_5707)3189 N_LIB_PRIVATE N_NIMCALL(void, sweep__system_5707)(tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ* gch) {
3190 	{
3191 		void* x;
3192 		x = (void*)0;
3193 		(*gch).region.locked = NIM_TRUE;
3194 		{
3195 			NI s;
3196 			s = (NI)0;
3197 			{
3198 				NI h;
3199 				NI res;
3200 				h = (NI)0;
3201 				res = ((NI) 0);
3202 				{
3203 					while (1) {
3204 						tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw* r;
3205 						if (!(res <= ((NI) 255))) goto LA5;
3206 						h = res;
3207 						r = (*gch).region.chunkStarts.data[(h)- 0];
3208 						{
3209 							while (1) {
3210 								NI i;
3211 								if (!!((r == ((tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw*) NIM_NIL)))) goto LA7;
3212 								i = ((NI) 0);
3213 								{
3214 									while (1) {
3215 										NU w;
3216 										NI j;
3217 										if (!(i <= ((NI) 15))) goto LA9;
3218 										w = (*r).bits[(i)- 0];
3219 										j = ((NI) 0);
3220 										{
3221 											while (1) {
3222 												if (!!((w == ((NU) 0)))) goto LA11;
3223 												{
3224 													NI T16_;
3225 													if (!!(((NU)(w & ((NU) 1)) == ((NU) 0)))) goto LA14_;
3226 													T16_ = (NI)0;
3227 													T16_ = pluspercent___system_696((NI)((NU32)(i) << (NU32)(((NI) 5))), j);
3228 													s = (NI)((NI)((NU32)((*r).key) << (NU32)(((NI) 9))) | T16_);
3229 													{
3230 														NIM_BOOL T19_;
3231 														tyObject_BaseChunk__Sdq7WpT6qAH858F5ZEdG3w* c;
3232 														T19_ = (NIM_BOOL)0;
3233 														T19_ = contains__system_4225((&(*gch).region.chunkStarts), s);
3234 														if (!T19_) goto LA20_;
3235 														c = ((tyObject_BaseChunk__Sdq7WpT6qAH858F5ZEdG3w*) ((NI)((NU32)(s) << (NU32)(((NI) 12)))));
3236 														{
3237 															NIM_BOOL T24_;
3238 															T24_ = (NIM_BOOL)0;
3239 															T24_ = chunkUnused__system_4343(c);
3240 															if (!!(T24_)) goto LA25_;
3241 															{
3242 																NIM_BOOL T29_;
3243 																tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ* c_2;
3244 																NI size;
3245 																NI a;
3246 																NI limit;
3247 																T29_ = (NIM_BOOL)0;
3248 																T29_ = isSmallChunk__system_4337(c);
3249 																if (!T29_) goto LA30_;
3250 																c_2 = ((tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ*) (c));
3251 																size = (*c_2).Sup.size;
3252 																a = ((NI) (ptrdiff_t) ((*c_2).data));
3253 																limit = (NI)(a + (*c_2).acc);
3254 																{
3255 																	while (1) {
3256 																		NIM_BOOL T34_;
3257 																		T34_ = (NIM_BOOL)0;
3258 																		T34_ = ltpercent___system_1005(a, limit);
3259 																		if (!T34_) goto LA33;
3260 																		x = ((void*) (a));
3261 																		{
3262 																			NIM_BOOL T37_;
3263 																			tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c_3;
3264 																			T37_ = (NIM_BOOL)0;
3265 																			T37_ = isCell__system_4400(x);
3266 																			if (!T37_) goto LA38_;
3267 																			c_3 = ((tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*) (x));
3268 																			{
3269 																				NIM_BOOL T42_;
3270 																				T42_ = (NIM_BOOL)0;
3271 																				T42_ = contains__system_4976((*gch).marked, c_3);
3272 																				if (!!(T42_)) goto LA43_;
3273 																				freeCyclicCell__system_5703(gch, c_3);
3274 																			}
3275 																			LA43_: ;
3276 																		}
3277 																		LA38_: ;
3278 																		a = pluspercent___system_696(a, size);
3279 																	} LA33: ;
3280 																}
3281 															}
3282 															goto LA27_;
3283 															LA30_: ;
3284 															{
3285 																tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* c_4;
3286 																c_4 = ((tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*) (c));
3287 																x = ((void*) ((*c_4).data));
3288 																{
3289 																	NIM_BOOL T48_;
3290 																	tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c_5;
3291 																	T48_ = (NIM_BOOL)0;
3292 																	T48_ = isCell__system_4400(x);
3293 																	if (!T48_) goto LA49_;
3294 																	c_5 = ((tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*) (x));
3295 																	{
3296 																		NIM_BOOL T53_;
3297 																		T53_ = (NIM_BOOL)0;
3298 																		T53_ = contains__system_4976((*gch).marked, c_5);
3299 																		if (!!(T53_)) goto LA54_;
3300 																		freeCyclicCell__system_5703(gch, c_5);
3301 																	}
3302 																	LA54_: ;
3303 																}
3304 																LA49_: ;
3305 															}
3306 															LA27_: ;
3307 														}
3308 														LA25_: ;
3309 													}
3310 													LA20_: ;
3311 												}
3312 												LA14_: ;
3313 												j += ((NI) 1);
3314 												w = (NU)((NU32)(w) >> (NU32)(((NI) 1)));
3315 											} LA11: ;
3316 										}
3317 										i += ((NI) 1);
3318 									} LA9: ;
3319 								}
3320 								r = (*r).next;
3321 							} LA7: ;
3322 						}
3323 						res += ((NI) 1);
3324 					} LA5: ;
3325 				}
3326 			}
3327 		}
3328 		(*gch).region.locked = NIM_FALSE;
3329 	}
3330 }
N_NIMCALL(void,collectCycles__system_5752)3331 N_LIB_PRIVATE N_NIMCALL(void, collectCycles__system_5752)(tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ* gch) {
3332 	tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g** d;
3333 	{
3334 		while (1) {
3335 			NIM_BOOL T3_;
3336 			if (!(((NI) 0) < (*gch).zct.len)) goto LA2;
3337 			T3_ = (NIM_BOOL)0;
3338 			T3_ = collectZCT__system_5750(gch);
3339 			(void)(T3_);
3340 		} LA2: ;
3341 	}
3342 	cellsetReset__system_5525((&(*gch).marked));
3343 	d = (*gch).decStack.d;
3344 	{
3345 		NI i;
3346 		NI colontmp_;
3347 		NI res;
3348 		i = (NI)0;
3349 		colontmp_ = (NI)0;
3350 		colontmp_ = (NI)((*gch).decStack.len - ((NI) 1));
3351 		res = ((NI) 0);
3352 		{
3353 			while (1) {
3354 				if (!(res <= colontmp_)) goto LA6;
3355 				i = res;
3356 				markS__system_5711(gch, d[i]);
3357 				res += ((NI) 1);
3358 			} LA6: ;
3359 		}
3360 	}
3361 	markGlobals__system_5719(gch);
3362 	sweep__system_5707(gch);
3363 }
N_NIMCALL(NI,getOccupiedMem__system_1936)3364 N_LIB_PRIVATE N_NIMCALL(NI, getOccupiedMem__system_1936)(void) {
3365 	NI result;
3366 	result = (NI)0;
3367 	result = gch__system_5209.region.occ;
3368 	return result;
3369 }
N_NIMCALL(void,unmarkStackAndRegisters__system_5803)3370 N_LIB_PRIVATE N_NIMCALL(void, unmarkStackAndRegisters__system_5803)(tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ* gch) {
3371 	tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g** d;
3372 	d = (*gch).decStack.d;
3373 	{
3374 		NI i;
3375 		NI colontmp_;
3376 		NI res;
3377 		i = (NI)0;
3378 		colontmp_ = (NI)0;
3379 		colontmp_ = (NI)((*gch).decStack.len - ((NI) 1));
3380 		res = ((NI) 0);
3381 		{
3382 			while (1) {
3383 				if (!(res <= colontmp_)) goto LA3;
3384 				i = res;
3385 				decRef__system_5307(d[i]);
3386 				res += ((NI) 1);
3387 			} LA3: ;
3388 		}
3389 	}
3390 	(*gch).decStack.len = ((NI) 0);
3391 }
N_NIMCALL(void,collectCTBody__system_5811)3392 N_LIB_PRIVATE N_NIMCALL(void, collectCTBody__system_5811)(tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ* gch) {
3393 	NI T1_;
3394 	T1_ = (NI)0;
3395 	T1_ = stackSize__system_5380();
3396 	(*gch).stat.maxStackSize = (((*gch).stat.maxStackSize >= T1_) ? (*gch).stat.maxStackSize : T1_);
3397 	prepareForInteriorPointerChecking__system_4732((&(*gch).region));
3398 	markStackAndRegisters__system_5769(gch);
3399 	(*gch).stat.maxStackCells = (((*gch).stat.maxStackCells >= (*gch).decStack.len) ? (*gch).stat.maxStackCells : (*gch).decStack.len);
3400 	(*gch).stat.stackScans += ((NI) 1);
3401 	{
3402 		NIM_BOOL T4_;
3403 		T4_ = (NIM_BOOL)0;
3404 		T4_ = collectZCT__system_5750(gch);
3405 		if (!T4_) goto LA5_;
3406 		{
3407 			NIM_BOOL T9_;
3408 			NI T10_;
3409 			NI T14_;
3410 			T9_ = (NIM_BOOL)0;
3411 			T10_ = (NI)0;
3412 			T10_ = getOccupiedMem__system_4811((&(*gch).region));
3413 			T9_ = ((*gch).cycleThreshold <= T10_);
3414 			if (T9_) goto LA11_;
3415 			T9_ = NIM_FALSE;
3416 			LA11_: ;
3417 			if (!T9_) goto LA12_;
3418 			collectCycles__system_5752(gch);
3419 			(*gch).stat.cycleCollections += ((NI) 1);
3420 			T14_ = (NI)0;
3421 			T14_ = getOccupiedMem__system_1936();
3422 			(*gch).cycleThreshold = ((((NI) 4194304) >= (NI)(T14_ * ((NI) 2))) ? ((NI) 4194304) : (NI)(T14_ * ((NI) 2)));
3423 			(*gch).stat.maxThreshold = (((*gch).stat.maxThreshold >= (*gch).cycleThreshold) ? (*gch).stat.maxThreshold : (*gch).cycleThreshold);
3424 		}
3425 		LA12_: ;
3426 	}
3427 	LA5_: ;
3428 	unmarkStackAndRegisters__system_5803(gch);
3429 }
N_NIMCALL(void,collectCT__system_5286)3430 N_LIB_PRIVATE N_NIMCALL(void, collectCT__system_5286)(tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ* gch) {
3431 	{
3432 		NIM_BOOL T3_;
3433 		NIM_BOOL T4_;
3434 		NIM_BOOL T5_;
3435 		NIM_BOOL T7_;
3436 		NI T9_;
3437 		T3_ = (NIM_BOOL)0;
3438 		T4_ = (NIM_BOOL)0;
3439 		T5_ = (NIM_BOOL)0;
3440 		T5_ = ((*gch).zctThreshold <= (*gch).zct.len);
3441 		if (T5_) goto LA6_;
3442 		T7_ = (NIM_BOOL)0;
3443 		T7_ = NIM_TRUE;
3444 		if (!(T7_)) goto LA8_;
3445 		T9_ = (NI)0;
3446 		T9_ = getOccupiedMem__system_4811((&(*gch).region));
3447 		T7_ = ((*gch).cycleThreshold <= T9_);
3448 		LA8_: ;
3449 		T5_ = T7_;
3450 		LA6_: ;
3451 		T4_ = T5_;
3452 		if (T4_) goto LA10_;
3453 		T4_ = NIM_FALSE;
3454 		LA10_: ;
3455 		T3_ = T4_;
3456 		if (!(T3_)) goto LA11_;
3457 		T3_ = ((*gch).recGcLock == ((NI) 0));
3458 		LA11_: ;
3459 		if (!T3_) goto LA12_;
3460 		collectCTBody__system_5811(gch);
3461 		(*gch).zctThreshold = ((((NI) 500) >= (NI)((*gch).zct.len * ((NI) 2))) ? ((NI) 500) : (NI)((*gch).zct.len * ((NI) 2)));
3462 	}
3463 	LA12_: ;
3464 }
N_INLINE(void,addNewObjToZCT__system_5624)3465 static N_INLINE(void, addNewObjToZCT__system_5624)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* res, tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ* gch) {
3466 	NI L;
3467 	tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g** d;
3468 {	L = (*gch).zct.len;
3469 	d = (*gch).zct.d;
3470 	{
3471 		tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c;
3472 		if (!(((NI) 8) < L)) goto LA3_;
3473 		c = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
3474 		c = d[(NI)(L - ((NI) 1))];
3475 		{
3476 			NIM_BOOL T7_;
3477 			T7_ = (NIM_BOOL)0;
3478 			T7_ = lteqpercent___system_985(((NI) 8), (*c).refcount);
3479 			if (!T7_) goto LA8_;
3480 			(*c).refcount = (NI)((*c).refcount & ((NI) -5));
3481 			d[(NI)(L - ((NI) 1))] = res;
3482 			goto BeforeRet_;
3483 		}
3484 		LA8_: ;
3485 		c = d[(NI)(L - ((NI) 2))];
3486 		{
3487 			NIM_BOOL T12_;
3488 			T12_ = (NIM_BOOL)0;
3489 			T12_ = lteqpercent___system_985(((NI) 8), (*c).refcount);
3490 			if (!T12_) goto LA13_;
3491 			(*c).refcount = (NI)((*c).refcount & ((NI) -5));
3492 			d[(NI)(L - ((NI) 2))] = res;
3493 			goto BeforeRet_;
3494 		}
3495 		LA13_: ;
3496 		c = d[(NI)(L - ((NI) 3))];
3497 		{
3498 			NIM_BOOL T17_;
3499 			T17_ = (NIM_BOOL)0;
3500 			T17_ = lteqpercent___system_985(((NI) 8), (*c).refcount);
3501 			if (!T17_) goto LA18_;
3502 			(*c).refcount = (NI)((*c).refcount & ((NI) -5));
3503 			d[(NI)(L - ((NI) 3))] = res;
3504 			goto BeforeRet_;
3505 		}
3506 		LA18_: ;
3507 		c = d[(NI)(L - ((NI) 4))];
3508 		{
3509 			NIM_BOOL T22_;
3510 			T22_ = (NIM_BOOL)0;
3511 			T22_ = lteqpercent___system_985(((NI) 8), (*c).refcount);
3512 			if (!T22_) goto LA23_;
3513 			(*c).refcount = (NI)((*c).refcount & ((NI) -5));
3514 			d[(NI)(L - ((NI) 4))] = res;
3515 			goto BeforeRet_;
3516 		}
3517 		LA23_: ;
3518 		c = d[(NI)(L - ((NI) 5))];
3519 		{
3520 			NIM_BOOL T27_;
3521 			T27_ = (NIM_BOOL)0;
3522 			T27_ = lteqpercent___system_985(((NI) 8), (*c).refcount);
3523 			if (!T27_) goto LA28_;
3524 			(*c).refcount = (NI)((*c).refcount & ((NI) -5));
3525 			d[(NI)(L - ((NI) 5))] = res;
3526 			goto BeforeRet_;
3527 		}
3528 		LA28_: ;
3529 		c = d[(NI)(L - ((NI) 6))];
3530 		{
3531 			NIM_BOOL T32_;
3532 			T32_ = (NIM_BOOL)0;
3533 			T32_ = lteqpercent___system_985(((NI) 8), (*c).refcount);
3534 			if (!T32_) goto LA33_;
3535 			(*c).refcount = (NI)((*c).refcount & ((NI) -5));
3536 			d[(NI)(L - ((NI) 6))] = res;
3537 			goto BeforeRet_;
3538 		}
3539 		LA33_: ;
3540 		c = d[(NI)(L - ((NI) 7))];
3541 		{
3542 			NIM_BOOL T37_;
3543 			T37_ = (NIM_BOOL)0;
3544 			T37_ = lteqpercent___system_985(((NI) 8), (*c).refcount);
3545 			if (!T37_) goto LA38_;
3546 			(*c).refcount = (NI)((*c).refcount & ((NI) -5));
3547 			d[(NI)(L - ((NI) 7))] = res;
3548 			goto BeforeRet_;
3549 		}
3550 		LA38_: ;
3551 		c = d[(NI)(L - ((NI) 8))];
3552 		{
3553 			NIM_BOOL T42_;
3554 			T42_ = (NIM_BOOL)0;
3555 			T42_ = lteqpercent___system_985(((NI) 8), (*c).refcount);
3556 			if (!T42_) goto LA43_;
3557 			(*c).refcount = (NI)((*c).refcount & ((NI) -5));
3558 			d[(NI)(L - ((NI) 8))] = res;
3559 			goto BeforeRet_;
3560 		}
3561 		LA43_: ;
3562 		add__system_4851((&(*gch).zct), res);
3563 	}
3564 	goto LA1_;
3565 	LA3_: ;
3566 	{
3567 		d[L] = res;
3568 		(*gch).zct.len += ((NI) 1);
3569 	}
3570 	LA1_: ;
3571 	}BeforeRet_: ;
3572 }
N_NIMCALL(void *,rawNewObj__system_5639)3573 N_LIB_PRIVATE N_NIMCALL(void*, rawNewObj__system_5639)(TNimType* typ, NI size, tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ* gch) {
3574 	void* result;
3575 	tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* res;
3576 	void* T1_;
3577 	result = (void*)0;
3578 	collectCT__system_5286(gch);
3579 	T1_ = (void*)0;
3580 	T1_ = rawAlloc__system_4551((&(*gch).region), (NI)(size + ((NI) 8)));
3581 	res = ((tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*) (T1_));
3582 	(*res).typ = typ;
3583 	(*res).refcount = ((NI) 4);
3584 	addNewObjToZCT__system_5624(res, gch);
3585 	result = cellToUsr__system_5259(res);
3586 	return result;
3587 }
N_NIMCALL(void *,newObjNoInit)3588 N_LIB_PRIVATE N_NIMCALL(void*, newObjNoInit)(TNimType* typ, NI size) {
3589 	void* result;
3590 	result = (void*)0;
3591 	result = rawNewObj__system_5639(typ, size, (&gch__system_5209));
3592 	return result;
3593 }
N_NIMCALL(NimStringDesc *,rawNewStringNoInit)3594 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, rawNewStringNoInit)(NI space) {
3595 	NimStringDesc* result;
3596 	NI s;
3597 	void* T5_;
3598 	result = (NimStringDesc*)0;
3599 	s = space;
3600 	{
3601 		if (!(s < ((NI) 7))) goto LA3_;
3602 		s = ((NI) 7);
3603 	}
3604 	LA3_: ;
3605 	T5_ = (void*)0;
3606 	T5_ = newObjNoInit((&strDesc__system_2412), (NI)((NI)(((NI) 8) + s) + ((NI) 1)));
3607 	result = ((NimStringDesc*) (T5_));
3608 	(*result).Sup.reserved = s;
3609 	(*result).Sup.len = ((NI) 0);
3610 	return result;
3611 }
N_NIMCALL(NimStringDesc *,toNimStr)3612 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, toNimStr)(NCSTRING str, NI len) {
3613 	NimStringDesc* result;
3614 	result = (NimStringDesc*)0;
3615 	result = rawNewStringNoInit(len);
3616 	(*result).Sup.len = len;
3617 	copyMem__system_1727(((void*) ((*result).data)), ((void*) (str)), ((NI) ((NI)(len + ((NI) 1)))));
3618 	return result;
3619 }
N_NIMCALL(NimStringDesc *,cstrToNimstr)3620 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, cstrToNimstr)(NCSTRING str) {
3621 	NimStringDesc* result;
3622 	result = (NimStringDesc*)0;
3623 	{
3624 		if (!(((void*) (str)) == NIM_NIL)) goto LA3_;
3625 		result = ((NimStringDesc*) NIM_NIL);
3626 	}
3627 	goto LA1_;
3628 	LA3_: ;
3629 	{
3630 		result = toNimStr(str, (str ? nimCStrLen(str) : 0));
3631 	}
3632 	LA1_: ;
3633 	return result;
3634 }
N_INLINE(void,popSafePoint)3635 static N_INLINE(void, popSafePoint)(void) {
3636 	excHandler__system_2565 = (*excHandler__system_2565).prev;
3637 }
N_INLINE(void,asgnRef)3638 static N_INLINE(void, asgnRef)(void** dest, void* src) {
3639 	{
3640 		tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T5_;
3641 		if (!!((src == NIM_NIL))) goto LA3_;
3642 		T5_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
3643 		T5_ = usrToCell__system_5262(src);
3644 		incRef__system_5300(T5_);
3645 	}
3646 	LA3_: ;
3647 	{
3648 		tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T10_;
3649 		if (!!(((*dest) == NIM_NIL))) goto LA8_;
3650 		T10_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
3651 		T10_ = usrToCell__system_5262((*dest));
3652 		decRef__system_5307(T10_);
3653 	}
3654 	LA8_: ;
3655 	(*dest) = src;
3656 }
N_INLINE(void,popCurrentException)3657 static N_INLINE(void, popCurrentException)(void) {
3658 	asgnRef((void**) (&currException__system_2566), (*currException__system_2566).up);
3659 }
N_NIMCALL(void,Marker_tyRef__uG62cfJZ15c2siK3CKLmnQ)3660 static N_NIMCALL(void, Marker_tyRef__uG62cfJZ15c2siK3CKLmnQ)(void* p, NI op) {
3661 	tyObject_ReraiseDefect__E0L0wGYS1gPD81VLstNO2g* a;
3662 	a = (tyObject_ReraiseDefect__E0L0wGYS1gPD81VLstNO2g*)p;
3663 	nimGCvisit((void*)(*a).Sup.Sup.parent, op);
3664 	nimGCvisit((void*)(*a).Sup.Sup.message, op);
3665 	nimGCvisit((void*)(*a).Sup.Sup.trace, op);
3666 	nimGCvisit((void*)(*a).Sup.Sup.up, op);
3667 }
N_NOINLINE(void *,newObj)3668 N_LIB_PRIVATE N_NOINLINE(void*, newObj)(TNimType* typ, NI size) {
3669 	void* result;
3670 	result = (void*)0;
3671 	result = rawNewObj__system_5639(typ, size, (&gch__system_5209));
3672 	zeroMem__system_1724(result, ((NI) (size)));
3673 	return result;
3674 }
N_NOINLINE(void *,newObjRC1)3675 N_LIB_PRIVATE N_NOINLINE(void*, newObjRC1)(TNimType* typ, NI size) {
3676 	void* result;
3677 	tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* res;
3678 	void* T1_;
3679 	result = (void*)0;
3680 	collectCT__system_5286((&gch__system_5209));
3681 	T1_ = (void*)0;
3682 	T1_ = rawAlloc__system_4551((&gch__system_5209.region), (NI)(size + ((NI) 8)));
3683 	res = ((tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*) (T1_));
3684 	(*res).typ = typ;
3685 	(*res).refcount = ((NI) 8);
3686 	result = cellToUsr__system_5259(res);
3687 	zeroMem__system_1724(result, ((NI) (size)));
3688 	return result;
3689 }
N_NIMCALL(NimStringDesc *,copyStringRC1)3690 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, copyStringRC1)(NimStringDesc* src) {
3691 	NimStringDesc* result;
3692 	result = (NimStringDesc*)0;
3693 	{
3694 		if (!!((src == ((NimStringDesc*) NIM_NIL)))) goto LA3_;
3695 		{
3696 			tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T9_;
3697 			if (!!(((NI)((*src).Sup.reserved & ((NI) (-2147483647 -1))) == ((NI) 0)))) goto LA7_;
3698 			result = src;
3699 			T9_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
3700 			T9_ = usrToCell__system_5262(((void*) (result)));
3701 			incRef__system_5300(T9_);
3702 		}
3703 		goto LA5_;
3704 		LA7_: ;
3705 		{
3706 			NI s;
3707 			void* T15_;
3708 			s = (*src).Sup.len;
3709 			{
3710 				if (!(s < ((NI) 7))) goto LA13_;
3711 				s = ((NI) 7);
3712 			}
3713 			LA13_: ;
3714 			T15_ = (void*)0;
3715 			T15_ = newObjRC1((&strDesc__system_2412), (NI)((NI)(((NI) 8) + s) + ((NI) 1)));
3716 			result = ((NimStringDesc*) (T15_));
3717 			(*result).Sup.reserved = s;
3718 			(*result).Sup.len = (*src).Sup.len;
3719 			copyMem__system_1727(((void*) ((*result).data)), ((void*) ((*src).data)), ((NI) ((NI)((*src).Sup.len + ((NI) 1)))));
3720 		}
3721 		LA5_: ;
3722 	}
3723 	LA3_: ;
3724 	return result;
3725 }
N_INLINE(void,nimGCunrefNoCycle)3726 static N_INLINE(void, nimGCunrefNoCycle)(void* p) {
3727 	tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T1_;
3728 	T1_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
3729 	T1_ = usrToCell__system_5262(p);
3730 	decRef__system_5307(T1_);
3731 }
N_NIMCALL(void,Marker_tyRef__r8GBEWywN07B3Rat3azS4Q)3732 static N_NIMCALL(void, Marker_tyRef__r8GBEWywN07B3Rat3azS4Q)(void* p, NI op) {
3733 	tyObject_OverflowDefect__9cxMi1BPLc3UKt9br86bGfGQ* a;
3734 	a = (tyObject_OverflowDefect__9cxMi1BPLc3UKt9br86bGfGQ*)p;
3735 	nimGCvisit((void*)(*a).Sup.Sup.Sup.parent, op);
3736 	nimGCvisit((void*)(*a).Sup.Sup.Sup.message, op);
3737 	nimGCvisit((void*)(*a).Sup.Sup.Sup.trace, op);
3738 	nimGCvisit((void*)(*a).Sup.Sup.Sup.up, op);
3739 }
N_INLINE(void,sysFatal__system_3375)3740 static N_INLINE(void, sysFatal__system_3375)(NimStringDesc* message) {
3741 	tyObject_OverflowDefect__9cxMi1BPLc3UKt9br86bGfGQ* T1_;
3742 	NimStringDesc* T2_;
3743 	T1_ = NIM_NIL;
3744 	T1_ = (tyObject_OverflowDefect__9cxMi1BPLc3UKt9br86bGfGQ*) newObj((&NTIrefoverflowdefect__r8GBEWywN07B3Rat3azS4Q_), sizeof(tyObject_OverflowDefect__9cxMi1BPLc3UKt9br86bGfGQ));
3745 	(*T1_).Sup.Sup.Sup.Sup.m_type = (&NTIoverflowdefect__9cxMi1BPLc3UKt9br86bGfGQ_);
3746 	(*T1_).Sup.Sup.Sup.name = "OverflowDefect";
3747 	T2_ = NIM_NIL;
3748 	T2_ = (*T1_).Sup.Sup.Sup.message; (*T1_).Sup.Sup.Sup.message = copyStringRC1(message);
3749 	if (T2_) nimGCunrefNoCycle(T2_);
3750 	raiseExceptionEx((Exception*)T1_, "OverflowDefect", "sysFatal", "fatal.nim", 53);
3751 }
N_NOINLINE(void,raiseOverflow)3752 N_LIB_PRIVATE N_NOINLINE(void, raiseOverflow)(void) {
3753 	sysFatal__system_3375(((NimStringDesc*) &TM__Q5wkpxktOdTGvlSRo9bzt9aw_7));
3754 }
N_NIMCALL(void *,newSeq)3755 N_LIB_PRIVATE N_NIMCALL(void*, newSeq)(TNimType* typ, NI len) {
3756 	void* result;
3757 	NI size;
3758 	NI T1_;
3759 	NI TM__Q5wkpxktOdTGvlSRo9bzt9aw_6;
3760 	NI TM__Q5wkpxktOdTGvlSRo9bzt9aw_8;
3761 	result = (void*)0;
3762 	T1_ = (NI)0;
3763 	T1_ = align__system_1624(((NI) 8), (*(*typ).base).align);
3764 	if (nimMulInt(len, (*(*typ).base).size, &TM__Q5wkpxktOdTGvlSRo9bzt9aw_6)) { raiseOverflow(); };
3765 	if (nimAddInt(T1_, (NI)(TM__Q5wkpxktOdTGvlSRo9bzt9aw_6), &TM__Q5wkpxktOdTGvlSRo9bzt9aw_8)) { raiseOverflow(); };
3766 	size = (NI)(TM__Q5wkpxktOdTGvlSRo9bzt9aw_8);
3767 	result = newObj(typ, size);
3768 	(*((TGenericSeq*) (result))).len = len;
3769 	(*((TGenericSeq*) (result))).reserved = len;
3770 	return result;
3771 }
N_INLINE(NI,resize__system_5866)3772 static N_INLINE(NI, resize__system_5866)(NI old) {
3773 	NI result;
3774 	result = (NI)0;
3775 	{
3776 		if (!(old <= ((NI) 0))) goto LA3_;
3777 		result = ((NI) 4);
3778 	}
3779 	goto LA1_;
3780 	LA3_: ;
3781 	{
3782 		if (!(old < ((NI) 65536))) goto LA6_;
3783 		result = (NI)(old * ((NI) 2));
3784 	}
3785 	goto LA1_;
3786 	LA6_: ;
3787 	{
3788 		result = (NI)((NI)(old * ((NI) 3)) / ((NI) 2));
3789 	}
3790 	LA1_: ;
3791 	return result;
3792 }
N_NIMCALL(void *,dataPointer__system_5856)3793 N_LIB_PRIVATE N_NIMCALL(void*, dataPointer__system_5856)(TGenericSeq* a, NI elemAlign) {
3794 	void* result;
3795 	NI T1_;
3796 	NI T2_;
3797 	result = (void*)0;
3798 	T1_ = (NI)0;
3799 	T1_ = align__system_1624(((NI) 8), elemAlign);
3800 	T2_ = (NI)0;
3801 	T2_ = pluspercent___system_696(((NI) (ptrdiff_t) (a)), T1_);
3802 	result = ((void*) (T2_));
3803 	return result;
3804 }
N_NIMCALL(TGenericSeq *,incrSeqV3)3805 N_LIB_PRIVATE N_NIMCALL(TGenericSeq*, incrSeqV3)(TGenericSeq* s, TNimType* typ) {
3806 	TGenericSeq* result;
3807 	result = (TGenericSeq*)0;
3808 	{
3809 		void* T5_;
3810 		if (!(s == ((TGenericSeq*) NIM_NIL))) goto LA3_;
3811 		T5_ = (void*)0;
3812 		T5_ = newSeq(typ, ((NI) 1));
3813 		result = ((TGenericSeq*) (T5_));
3814 		(*result).len = ((NI) 0);
3815 	}
3816 	goto LA1_;
3817 	LA3_: ;
3818 	{
3819 		result = s;
3820 		{
3821 			NI r;
3822 			void* T11_;
3823 			void* T12_;
3824 			void* T13_;
3825 			if (!((NI)((*result).reserved & ((NI) 1073741823)) <= (*result).len)) goto LA9_;
3826 			r = resize__system_5866((NI)((*result).reserved & ((NI) 1073741823)));
3827 			T11_ = (void*)0;
3828 			T11_ = newSeq(typ, r);
3829 			result = ((TGenericSeq*) (T11_));
3830 			(*result).len = (*s).len;
3831 			T12_ = (void*)0;
3832 			T12_ = dataPointer__system_5856(result, (*(*typ).base).align);
3833 			T13_ = (void*)0;
3834 			T13_ = dataPointer__system_5856(s, (*(*typ).base).align);
3835 			copyMem__system_1727(T12_, T13_, ((NI) ((NI)((*s).len * (*(*typ).base).size))));
3836 			(*s).len = ((NI) 0);
3837 		}
3838 		LA9_: ;
3839 	}
3840 	LA1_: ;
3841 	return result;
3842 }
N_INLINE(void,pushCurrentException)3843 static N_INLINE(void, pushCurrentException)(Exception* e) {
3844 	asgnRef((void**) (&(*e).up), currException__system_2566);
3845 	asgnRef((void**) (&currException__system_2566), e);
3846 }
N_NIMCALL(NimStringDesc *,rawNewString)3847 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, rawNewString)(NI space) {
3848 	NimStringDesc* result;
3849 	NI s;
3850 	void* T5_;
3851 	result = (NimStringDesc*)0;
3852 	s = space;
3853 	{
3854 		if (!(s < ((NI) 7))) goto LA3_;
3855 		s = ((NI) 7);
3856 	}
3857 	LA3_: ;
3858 	T5_ = (void*)0;
3859 	T5_ = newObj((&strDesc__system_2412), (NI)((NI)(((NI) 8) + s) + ((NI) 1)));
3860 	result = ((NimStringDesc*) (T5_));
3861 	(*result).Sup.reserved = s;
3862 	(*result).Sup.len = ((NI) 0);
3863 	return result;
3864 }
N_INLINE(void,appendString)3865 static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src) {
3866 	{
3867 		if (!!((src == ((NimStringDesc*) NIM_NIL)))) goto LA3_;
3868 		copyMem__system_1727(((void*) ((&(*dest).data[(*dest).Sup.len]))), ((void*) ((*src).data)), ((NI) ((NI)((*src).Sup.len + ((NI) 1)))));
3869 		(*dest).Sup.len += (*src).Sup.len;
3870 	}
3871 	LA3_: ;
3872 }
N_NIMCALL(NimStringDesc *,resizeString)3873 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, resizeString)(NimStringDesc* dest, NI addlen) {
3874 	NimStringDesc* result;
3875 	result = (NimStringDesc*)0;
3876 	{
3877 		if (!(dest == ((NimStringDesc*) NIM_NIL))) goto LA3_;
3878 		result = rawNewStringNoInit(addlen);
3879 	}
3880 	goto LA1_;
3881 	LA3_: ;
3882 	{
3883 		if (!((NI)((*dest).Sup.len + addlen) <= (NI)((*dest).Sup.reserved & ((NI) 1073741823)))) goto LA6_;
3884 		result = dest;
3885 	}
3886 	goto LA1_;
3887 	LA6_: ;
3888 	{
3889 		NI sp;
3890 		NI T9_;
3891 		T9_ = (NI)0;
3892 		T9_ = resize__system_5866((NI)((*dest).Sup.reserved & ((NI) 1073741823)));
3893 		sp = ((T9_ >= (NI)((*dest).Sup.len + addlen)) ? T9_ : (NI)((*dest).Sup.len + addlen));
3894 		result = rawNewStringNoInit(sp);
3895 		(*result).Sup.len = (*dest).Sup.len;
3896 		copyMem__system_1727(((void*) ((&(*result).data[((NI) 0)]))), ((void*) ((&(*dest).data[((NI) 0)]))), ((NI) ((NI)((*dest).Sup.len + ((NI) 1)))));
3897 		(*result).Sup.reserved = sp;
3898 	}
3899 	LA1_: ;
3900 	return result;
3901 }
N_NIMCALL(NimStringDesc *,addChar)3902 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, addChar)(NimStringDesc* s, NIM_CHAR c) {
3903 	NimStringDesc* result;
3904 	result = (NimStringDesc*)0;
3905 	{
3906 		if (!(s == ((NimStringDesc*) NIM_NIL))) goto LA3_;
3907 		result = rawNewStringNoInit(((NI) 1));
3908 		(*result).Sup.len = ((NI) 0);
3909 	}
3910 	goto LA1_;
3911 	LA3_: ;
3912 	{
3913 		result = s;
3914 		{
3915 			NI r;
3916 			if (!((NI)((*result).Sup.reserved & ((NI) 1073741823)) <= (*result).Sup.len)) goto LA8_;
3917 			r = resize__system_5866((NI)((*result).Sup.reserved & ((NI) 1073741823)));
3918 			result = rawNewStringNoInit(r);
3919 			(*result).Sup.len = (*s).Sup.len;
3920 			copyMem__system_1727(((void*) ((&(*result).data[((NI) 0)]))), ((void*) ((&(*s).data[((NI) 0)]))), ((NI) ((NI)((*s).Sup.len + ((NI) 1)))));
3921 			(*result).Sup.reserved = r;
3922 		}
3923 		LA8_: ;
3924 	}
3925 	LA1_: ;
3926 	(*result).data[(*result).Sup.len] = c;
3927 	(*result).data[(NI)((*result).Sup.len + ((NI) 1))] = 0;
3928 	(*result).Sup.len += ((NI) 1);
3929 	return result;
3930 }
N_NIMCALL(tyObject_GcStack__7fytPA5bBsob6See21YMRA *,getActiveStack__system_5398)3931 N_LIB_PRIVATE N_NIMCALL(tyObject_GcStack__7fytPA5bBsob6See21YMRA*, getActiveStack__system_5398)(tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ* gch) {
3932 	tyObject_GcStack__7fytPA5bBsob6See21YMRA* result;
3933 	result = (tyObject_GcStack__7fytPA5bBsob6See21YMRA*)0;
3934 	result = (&(*gch).stack);
3935 	return result;
3936 }
N_NOINLINE(NIM_BOOL,isOnStack__system_5288)3937 N_LIB_PRIVATE N_NOINLINE(NIM_BOOL, isOnStack__system_5288)(void* p) {
3938 	NIM_BOOL result;
3939 	void* volatile stackTop;
3940 	NI a;
3941 	tyObject_GcStack__7fytPA5bBsob6See21YMRA* T1_;
3942 	NI b;
3943 	NI T2_;
3944 	NI x;
3945 	NIM_BOOL T3_;
3946 	result = (NIM_BOOL)0;
3947 	stackTop = ((void*) ((&stackTop)));
3948 	T1_ = (tyObject_GcStack__7fytPA5bBsob6See21YMRA*)0;
3949 	T1_ = getActiveStack__system_5398((&gch__system_5209));
3950 	a = ((NI) (ptrdiff_t) ((*T1_).bottom));
3951 	b = ((NI) (ptrdiff_t) (stackTop));
3952 	T2_ = (NI)0;
3953 	T2_ = a;
3954 	a = b;
3955 	b = T2_;
3956 	x = ((NI) (ptrdiff_t) (p));
3957 	T3_ = (NIM_BOOL)0;
3958 	T3_ = lteqpercent___system_985(a, x);
3959 	if (!(T3_)) goto LA4_;
3960 	T3_ = lteqpercent___system_985(x, b);
3961 	LA4_: ;
3962 	result = T3_;
3963 	return result;
3964 }
N_NIMCALL(void,unsureAsgnRef)3965 N_LIB_PRIVATE N_NIMCALL(void, unsureAsgnRef)(void** dest, void* src) {
3966 	{
3967 		NIM_BOOL T3_;
3968 		T3_ = (NIM_BOOL)0;
3969 		T3_ = isOnStack__system_5288(((void*) (dest)));
3970 		if (!!(T3_)) goto LA4_;
3971 		{
3972 			tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T10_;
3973 			if (!!((src == NIM_NIL))) goto LA8_;
3974 			T10_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
3975 			T10_ = usrToCell__system_5262(src);
3976 			incRef__system_5300(T10_);
3977 		}
3978 		LA8_: ;
3979 		{
3980 			NIM_BOOL T13_;
3981 			tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T16_;
3982 			T13_ = (NIM_BOOL)0;
3983 			T13_ = lteqpercent___system_985(((NI) 4096), ((NI) (ptrdiff_t) ((*dest))));
3984 			if (!T13_) goto LA14_;
3985 			T16_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
3986 			T16_ = usrToCell__system_5262((*dest));
3987 			decRef__system_5307(T16_);
3988 		}
3989 		LA14_: ;
3990 	}
3991 	goto LA1_;
3992 	LA4_: ;
3993 	{
3994 	}
3995 	LA1_: ;
3996 	(*dest) = src;
3997 }
N_NIMCALL(void,add__system_2308)3998 N_LIB_PRIVATE N_NIMCALL(void, add__system_2308)(NimStringDesc** x, NCSTRING y) {
3999 	NI i;
4000 	i = ((NI) 0);
4001 	{
4002 		if (!!((((void*) (y)) == NIM_NIL))) goto LA3_;
4003 		{
4004 			while (1) {
4005 				if (!!(((NU8)(y[i]) == (NU8)(0)))) goto LA6;
4006 				unsureAsgnRef((void**) (&(*x)), addChar((*x), y[i]));
4007 				i += ((NI) 1);
4008 			} LA6: ;
4009 		}
4010 	}
4011 	LA3_: ;
4012 }
N_NIMCALL(NimStringDesc *,mnewString)4013 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, mnewString)(NI len) {
4014 	NimStringDesc* result;
4015 	result = (NimStringDesc*)0;
4016 	result = rawNewString(len);
4017 	(*result).Sup.len = len;
4018 	return result;
4019 }
N_NIMCALL(NimStringDesc *,setLengthStr)4020 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, setLengthStr)(NimStringDesc* s, NI newLen) {
4021 	NimStringDesc* result;
4022 	NI n;
4023 	result = (NimStringDesc*)0;
4024 	n = ((newLen >= ((NI) 0)) ? newLen : ((NI) 0));
4025 	{
4026 		if (!(s == ((NimStringDesc*) NIM_NIL))) goto LA3_;
4027 		result = mnewString(newLen);
4028 	}
4029 	goto LA1_;
4030 	LA3_: ;
4031 	{
4032 		if (!(n <= (NI)((*s).Sup.reserved & ((NI) 1073741823)))) goto LA6_;
4033 		result = s;
4034 	}
4035 	goto LA1_;
4036 	LA6_: ;
4037 	{
4038 		NI sp;
4039 		NI T9_;
4040 		T9_ = (NI)0;
4041 		T9_ = resize__system_5866((NI)((*s).Sup.reserved & ((NI) 1073741823)));
4042 		sp = ((T9_ >= newLen) ? T9_ : newLen);
4043 		result = rawNewStringNoInit(sp);
4044 		(*result).Sup.len = (*s).Sup.len;
4045 		copyMem__system_1727(((void*) ((&(*result).data[((NI) 0)]))), ((void*) ((&(*s).data[((NI) 0)]))), ((NI) ((NI)((*s).Sup.len + ((NI) 1)))));
4046 		zeroMem__system_1724(((void*) ((&(*result).data[(*s).Sup.len]))), ((NI) ((NI)(newLen - (*s).Sup.len))));
4047 		(*result).Sup.reserved = sp;
4048 	}
4049 	LA1_: ;
4050 	(*result).Sup.len = n;
4051 	(*result).data[n] = 0;
4052 	return result;
4053 }
N_INLINE(void,addInt__stdZprivateZdigitsutils_189)4054 static N_INLINE(void, addInt__stdZprivateZdigitsutils_189)(NimStringDesc** result, NI x) {
4055 	addInt__stdZprivateZdigitsutils_167(result, ((NI64) (x)));
4056 }
N_NIMCALL(NimStringDesc *,dollar___system_2723)4057 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___system_2723)(tySequence__uB9b75OUPRENsBAu4AnoePA* stackTraceEntries) {
4058 	NimStringDesc* result;
4059 	tySequence__uB9b75OUPRENsBAu4AnoePA* s;
4060 	result = NIM_NIL;
4061 	s = stackTraceEntries;
4062 	result = rawNewString(((NI) 2000));
4063 	{
4064 		NI i;
4065 		NI colontmp_;
4066 		NI T2_;
4067 		NI res;
4068 		i = (NI)0;
4069 		colontmp_ = (NI)0;
4070 		T2_ = (s ? s->Sup.len : 0);
4071 		colontmp_ = (NI)(T2_ - ((NI) 1));
4072 		res = ((NI) 0);
4073 		{
4074 			while (1) {
4075 				if (!(res <= colontmp_)) goto LA4;
4076 				i = res;
4077 				{
4078 					if (!(s->data[i].line == ((NI) -10))) goto LA7_;
4079 					result = resizeString(result, 17);
4080 appendString(result, ((NimStringDesc*) &TM__Q5wkpxktOdTGvlSRo9bzt9aw_9));
4081 				}
4082 				goto LA5_;
4083 				LA7_: ;
4084 				{
4085 					if (!(s->data[i].line == ((NI) -100))) goto LA10_;
4086 					result = resizeString(result, 3);
4087 appendString(result, ((NimStringDesc*) &TM__Q5wkpxktOdTGvlSRo9bzt9aw_10));
4088 				}
4089 				goto LA5_;
4090 				LA10_: ;
4091 				{
4092 					NI oldLenX60gensym69_;
4093 					oldLenX60gensym69_ = (result ? result->Sup.len : 0);
4094 					add__system_2308((&result), s->data[i].filename);
4095 					{
4096 						if (!(((NI) 0) < s->data[i].line)) goto LA15_;
4097 						result = resizeString(result, 1);
4098 appendString(result, ((NimStringDesc*) &TM__Q5wkpxktOdTGvlSRo9bzt9aw_11));
4099 						addInt__stdZprivateZdigitsutils_189((&result), s->data[i].line);
4100 						{
4101 							if (!NIM_FALSE) goto LA19_;
4102 							result = resizeString(result, 2);
4103 appendString(result, ((NimStringDesc*) &TM__Q5wkpxktOdTGvlSRo9bzt9aw_12));
4104 							addInt__stdZprivateZdigitsutils_189((&result), ((NI) 0));
4105 						}
4106 						LA19_: ;
4107 						result = resizeString(result, 1);
4108 appendString(result, ((NimStringDesc*) &TM__Q5wkpxktOdTGvlSRo9bzt9aw_13));
4109 					}
4110 					LA15_: ;
4111 					{
4112 						NI kX60gensym69_;
4113 						NI colontmp__2;
4114 						NI res_2;
4115 						kX60gensym69_ = (NI)0;
4116 						colontmp__2 = (NI)0;
4117 						colontmp__2 = ((((NI) 1) >= (NI)(((NI) 25) - (NI)((result ? result->Sup.len : 0) - oldLenX60gensym69_))) ? ((NI) 1) : (NI)(((NI) 25) - (NI)((result ? result->Sup.len : 0) - oldLenX60gensym69_)));
4118 						res_2 = ((NI) 1);
4119 						{
4120 							while (1) {
4121 								if (!(res_2 <= colontmp__2)) goto LA23;
4122 								kX60gensym69_ = res_2;
4123 								result = addChar(result, 32);
4124 								res_2 += ((NI) 1);
4125 							} LA23: ;
4126 						}
4127 					}
4128 					add__system_2308((&result), s->data[i].procname);
4129 					result = resizeString(result, 1);
4130 appendString(result, ((NimStringDesc*) &TM__Q5wkpxktOdTGvlSRo9bzt9aw_14));
4131 				}
4132 				LA5_: ;
4133 				res += ((NI) 1);
4134 			} LA4: ;
4135 		}
4136 	}
4137 	return result;
4138 }
N_INLINE(NCSTRING,nimToCStringConv)4139 static N_INLINE(NCSTRING, nimToCStringConv)(NimStringDesc* s) {
4140 	NCSTRING result;
4141 	result = (NCSTRING)0;
4142 	{
4143 		NIM_BOOL T3_;
4144 		T3_ = (NIM_BOOL)0;
4145 		T3_ = (s == ((NimStringDesc*) NIM_NIL));
4146 		if (T3_) goto LA4_;
4147 		T3_ = ((*s).Sup.len == ((NI) 0));
4148 		LA4_: ;
4149 		if (!T3_) goto LA5_;
4150 		result = "";
4151 	}
4152 	goto LA1_;
4153 	LA5_: ;
4154 	{
4155 		result = ((NCSTRING) ((*s).data));
4156 	}
4157 	LA1_: ;
4158 	return result;
4159 }
N_NIMCALL(void,reportUnhandledErrorAux__system_2752)4160 N_LIB_PRIVATE N_NIMCALL(void, reportUnhandledErrorAux__system_2752)(Exception* e) {
4161 	tyArray__gpc2RrLEcWgv7ONpLYNHOw buf;
4162 	NI L;
4163 	nimZeroMem((void*)buf, sizeof(tyArray__gpc2RrLEcWgv7ONpLYNHOw));
4164 	L = ((NI) 0);
4165 	{
4166 		NI T3_;
4167 		NimStringDesc* trace;
4168 		T3_ = ((*e).trace ? (*e).trace->Sup.len : 0);
4169 		if (!!((T3_ == ((NI) 0)))) goto LA4_;
4170 		trace = dollar___system_2723((*e).trace);
4171 		{
4172 			if (!((NI)(L + (trace ? trace->Sup.len : 0)) < ((NI) 2000))) goto LA8_;
4173 			copyMem__system_1727(((void*) ((&buf[(L)- 0]))), ((void*) (nimToCStringConv(trace))), ((NI) ((trace ? trace->Sup.len : 0))));
4174 			L += (trace ? trace->Sup.len : 0);
4175 		}
4176 		LA8_: ;
4177 		eqdestroy___systemZassertions_23((&trace));
4178 	}
4179 	LA4_: ;
4180 	{
4181 		if (!((NI)(L + ((NI) 28)) < ((NI) 2000))) goto LA12_;
4182 		copyMem__system_1727(((void*) ((&buf[(L)- 0]))), ((void*) ("Error: unhandled exception: ")), ((NI) 28));
4183 		L += ((NI) 28);
4184 	}
4185 	LA12_: ;
4186 	{
4187 		if (!((NI)(L + ((*e).message ? (*e).message->Sup.len : 0)) < ((NI) 2000))) goto LA16_;
4188 		copyMem__system_1727(((void*) ((&buf[(L)- 0]))), ((void*) (nimToCStringConv((*e).message))), ((NI) (((*e).message ? (*e).message->Sup.len : 0))));
4189 		L += ((*e).message ? (*e).message->Sup.len : 0);
4190 	}
4191 	LA16_: ;
4192 	{
4193 		if (!((NI)(L + ((NI) 2)) < ((NI) 2000))) goto LA20_;
4194 		copyMem__system_1727(((void*) ((&buf[(L)- 0]))), ((void*) (" [")), ((NI) 2));
4195 		L += ((NI) 2);
4196 	}
4197 	LA20_: ;
4198 	{
4199 		if (!((NI)(L + ((*e).name ? nimCStrLen((*e).name) : 0)) < ((NI) 2000))) goto LA24_;
4200 		copyMem__system_1727(((void*) ((&buf[(L)- 0]))), ((void*) ((*e).name)), ((NI) (((*e).name ? nimCStrLen((*e).name) : 0))));
4201 		L += ((*e).name ? nimCStrLen((*e).name) : 0);
4202 	}
4203 	LA24_: ;
4204 	{
4205 		if (!((NI)(L + ((NI) 2)) < ((NI) 2000))) goto LA28_;
4206 		copyMem__system_1727(((void*) ((&buf[(L)- 0]))), ((void*) ("]\012")), ((NI) 2));
4207 		L += ((NI) 2);
4208 	}
4209 	LA28_: ;
4210 	{
4211 		NimStringDesc* T34_;
4212 		if (!!((onUnhandledException__system_2751 == NIM_NIL))) goto LA32_;
4213 		T34_ = NIM_NIL;
4214 		T34_ = cstrToNimstr(((NCSTRING) (buf)));
4215 		onUnhandledException__system_2751(T34_);
4216 	}
4217 	goto LA30_;
4218 	LA32_: ;
4219 	{
4220 		showErrorMessage__system_2536(((NCSTRING) (buf)), L);
4221 	}
4222 	LA30_: ;
4223 }
N_NIMCALL(void,reportUnhandledError__system_2855)4224 N_LIB_PRIVATE N_NIMCALL(void, reportUnhandledError__system_2855)(Exception* e) {
4225 	{
4226 		if (!!((unhandledExceptionHook__system_2299 == NIM_NIL))) goto LA3_;
4227 		unhandledExceptionHook__system_2299(e);
4228 	}
4229 	LA3_: ;
4230 	reportUnhandledErrorAux__system_2752(e);
4231 }
N_NIMCALL(void,raiseExceptionAux__system_2866)4232 N_LIB_PRIVATE N_NIMCALL(void, raiseExceptionAux__system_2866)(Exception* e) {
4233 {	{
4234 		if (!!((localRaiseHook__system_2294 == NIM_NIL))) goto LA3_;
4235 		{
4236 			NIM_BOOL T7_;
4237 			T7_ = (NIM_BOOL)0;
4238 			T7_ = localRaiseHook__system_2294(e);
4239 			if (!!(T7_)) goto LA8_;
4240 			goto BeforeRet_;
4241 		}
4242 		LA8_: ;
4243 	}
4244 	LA3_: ;
4245 	{
4246 		if (!!((globalRaiseHook__system_2291 == NIM_NIL))) goto LA12_;
4247 		{
4248 			NIM_BOOL T16_;
4249 			T16_ = (NIM_BOOL)0;
4250 			T16_ = globalRaiseHook__system_2291(e);
4251 			if (!!(T16_)) goto LA17_;
4252 			goto BeforeRet_;
4253 		}
4254 		LA17_: ;
4255 	}
4256 	LA12_: ;
4257 	{
4258 		if (!!((excHandler__system_2565 == ((TSafePoint*) NIM_NIL)))) goto LA21_;
4259 		pushCurrentException(e);
4260 		_longjmp((*excHandler__system_2565).context, ((int) 1));
4261 	}
4262 	goto LA19_;
4263 	LA21_: ;
4264 	{
4265 		reportUnhandledError__system_2855(e);
4266 		exit(((NI) 1));
4267 	}
4268 	LA19_: ;
4269 	}BeforeRet_: ;
4270 }
N_NIMCALL(void,raiseExceptionEx)4271 N_LIB_PRIVATE N_NIMCALL(void, raiseExceptionEx)(Exception* e, NCSTRING ename, NCSTRING procname, NCSTRING filename, NI line) {
4272 	{
4273 		if (!((*e).name == 0)) goto LA3_;
4274 		(*e).name = ename;
4275 	}
4276 	LA3_: ;
4277 	{
4278 		NIM_BOOL T7_;
4279 		tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA T11_;
4280 		NI T12_;
4281 		T7_ = (NIM_BOOL)0;
4282 		T7_ = !((((void*) (procname)) == NIM_NIL));
4283 		if (!(T7_)) goto LA8_;
4284 		T7_ = !((((void*) (filename)) == NIM_NIL));
4285 		LA8_: ;
4286 		if (!T7_) goto LA9_;
4287 		nimZeroMem((void*)(&T11_), sizeof(tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA));
4288 		T11_.procname = procname;
4289 		T11_.filename = filename;
4290 		T11_.line = line;
4291 		asgnRef((void**) (&(*e).trace), (tySequence__uB9b75OUPRENsBAu4AnoePA*) incrSeqV3((TGenericSeq*)((*e).trace), (&NTIseqLstacktraceentryT__uB9b75OUPRENsBAu4AnoePA_)));
4292 		T12_ = (*e).trace->Sup.len++;
4293 		(*e).trace->data[T12_] = T11_;
4294 	}
4295 	LA9_: ;
4296 	raiseExceptionAux__system_2866(e);
4297 }
N_INLINE(void,sysFatal__system_2898)4298 static N_INLINE(void, sysFatal__system_2898)(NimStringDesc* message) {
4299 	tyObject_ReraiseDefect__E0L0wGYS1gPD81VLstNO2g* T1_;
4300 	NimStringDesc* T2_;
4301 	T1_ = NIM_NIL;
4302 	T1_ = (tyObject_ReraiseDefect__E0L0wGYS1gPD81VLstNO2g*) newObj((&NTIrefreraisedefect__uG62cfJZ15c2siK3CKLmnQ_), sizeof(tyObject_ReraiseDefect__E0L0wGYS1gPD81VLstNO2g));
4303 	(*T1_).Sup.Sup.Sup.m_type = (&NTIreraisedefect__E0L0wGYS1gPD81VLstNO2g_);
4304 	(*T1_).Sup.Sup.name = "ReraiseDefect";
4305 	T2_ = NIM_NIL;
4306 	T2_ = (*T1_).Sup.Sup.message; (*T1_).Sup.Sup.message = copyStringRC1(message);
4307 	if (T2_) nimGCunrefNoCycle(T2_);
4308 	raiseExceptionEx((Exception*)T1_, "ReraiseDefect", "sysFatal", "fatal.nim", 53);
4309 }
N_NIMCALL(void,reraiseException)4310 N_LIB_PRIVATE N_NIMCALL(void, reraiseException)(void) {
4311 	{
4312 		if (!(currException__system_2566 == ((Exception*) NIM_NIL))) goto LA3_;
4313 		sysFatal__system_2898(((NimStringDesc*) &TM__Q5wkpxktOdTGvlSRo9bzt9aw_15));
4314 	}
4315 	goto LA1_;
4316 	LA3_: ;
4317 	{
4318 		raiseExceptionAux__system_2866(currException__system_2566);
4319 	}
4320 	LA1_: ;
4321 }
N_INLINE(void,rawWriteString)4322 static N_INLINE(void, rawWriteString)(FILE* f, NCSTRING s, NI length) {
4323 	int T1_;
4324 	int T2_;
4325 	T1_ = (int)0;
4326 	T1_ = fwrite(((void*) (s)), ((size_t) 1), ((size_t) (length)), f);
4327 	(void)(T1_);
4328 	T2_ = (int)0;
4329 	T2_ = fflush(f);
4330 	(void)(T2_);
4331 }
N_NIMCALL(void,writeToStdErr__system_2531)4332 N_LIB_PRIVATE N_NIMCALL(void, writeToStdErr__system_2531)(NCSTRING msg, NI length) {
4333 	rawWriteString(stderr, msg, length);
4334 }
N_NIMCALL(void,showErrorMessage__system_2536)4335 N_LIB_PRIVATE N_NIMCALL(void, showErrorMessage__system_2536)(NCSTRING data, NI length) {
4336 	NIM_BOOL volatile toWrite;
4337 	toWrite = NIM_TRUE;
4338 	{
4339 		TSafePoint TM__Q5wkpxktOdTGvlSRo9bzt9aw_5;
4340 		NimStringDesc* T5_;
4341 		if (!!((errorMessageWriter__system_2528 == NIM_NIL))) goto LA3_;
4342 		pushSafePoint(&TM__Q5wkpxktOdTGvlSRo9bzt9aw_5);
4343 		TM__Q5wkpxktOdTGvlSRo9bzt9aw_5.status = _setjmp(TM__Q5wkpxktOdTGvlSRo9bzt9aw_5.context);
4344 		if (TM__Q5wkpxktOdTGvlSRo9bzt9aw_5.status == 0) {
4345 		T5_ = NIM_NIL;
4346 		T5_ = cstrToNimstr(data);
4347 		errorMessageWriter__system_2528(T5_);
4348 		toWrite = NIM_FALSE;
4349 		popSafePoint();
4350 		}
4351 		else {
4352 			popSafePoint();
4353 			{
4354 				TM__Q5wkpxktOdTGvlSRo9bzt9aw_5.status = 0;
4355 				popCurrentException();
4356 			}
4357 		}
4358 		if (TM__Q5wkpxktOdTGvlSRo9bzt9aw_5.status != 0) reraiseException();
4359 	}
4360 	LA3_: ;
4361 	{
4362 		if (!toWrite) goto LA10_;
4363 		writeToStdErr__system_2531(data, length);
4364 	}
4365 	LA10_: ;
4366 }
N_NOCONV(void,signalHandler)4367 N_LIB_PRIVATE N_NOCONV(void, signalHandler)(int sign) {
4368 	NCSTRING msg;
4369 	tyProc__ZEo3s9cIqJYP74f7GMZM2FA T26_;
4370 	int T27_;
4371 	msg = (NCSTRING)0;
4372 	{
4373 		if (!(sign == ((int) 2))) goto LA3_;
4374 		msg = "SIGINT: Interrupted by Ctrl-C.\012";
4375 	}
4376 	goto LA1_;
4377 	LA3_: ;
4378 	{
4379 		if (!(sign == ((int) 11))) goto LA6_;
4380 		msg = "SIGSEGV: Illegal storage access. (Attempt to read from nil\?)\012";
4381 	}
4382 	goto LA1_;
4383 	LA6_: ;
4384 	{
4385 		if (!(sign == ((int) 6))) goto LA9_;
4386 		msg = "SIGABRT: Abnormal termination.\012";
4387 	}
4388 	goto LA1_;
4389 	LA9_: ;
4390 	{
4391 		if (!(sign == ((int) 8))) goto LA12_;
4392 		msg = "SIGFPE: Arithmetic error.\012";
4393 	}
4394 	goto LA1_;
4395 	LA12_: ;
4396 	{
4397 		if (!(sign == ((int) 4))) goto LA15_;
4398 		msg = "SIGILL: Illegal operation.\012";
4399 	}
4400 	goto LA1_;
4401 	LA15_: ;
4402 	{
4403 		if (!NIM_FALSE) goto LA18_;
4404 		msg = "SIGBUS: Illegal storage access. (Attempt to read from nil\?)\012";
4405 	}
4406 	goto LA1_;
4407 	LA18_: ;
4408 	{
4409 		{
4410 			{
4411 				if (!(sign == ((int) 13))) goto LA24_;
4412 				msg = "SIGPIPE: Pipe closed.\012";
4413 				goto LA21;
4414 			}
4415 			LA24_: ;
4416 			msg = "unknown signal\012";
4417 		} LA21: ;
4418 	}
4419 	LA1_: ;
4420 	showErrorMessage__system_2536(msg, (msg ? nimCStrLen(msg) : 0));
4421 	T26_ = (tyProc__ZEo3s9cIqJYP74f7GMZM2FA)0;
4422 	T26_ = signal(sign, ((tyProc__ZEo3s9cIqJYP74f7GMZM2FA) 0));
4423 	T27_ = (int)0;
4424 	T27_ = raise(sign);
4425 	(void)(T27_);
4426 }
N_NIMCALL(void,registerSignalHandler__system_2992)4427 N_LIB_PRIVATE N_NIMCALL(void, registerSignalHandler__system_2992)(void) {
4428 	tyProc__ZEo3s9cIqJYP74f7GMZM2FA T1_;
4429 	tyProc__ZEo3s9cIqJYP74f7GMZM2FA T2_;
4430 	tyProc__ZEo3s9cIqJYP74f7GMZM2FA T3_;
4431 	tyProc__ZEo3s9cIqJYP74f7GMZM2FA T4_;
4432 	tyProc__ZEo3s9cIqJYP74f7GMZM2FA T5_;
4433 	tyProc__ZEo3s9cIqJYP74f7GMZM2FA T6_;
4434 	T1_ = (tyProc__ZEo3s9cIqJYP74f7GMZM2FA)0;
4435 	T1_ = signal(((int) 2), signalHandler);
4436 	T2_ = (tyProc__ZEo3s9cIqJYP74f7GMZM2FA)0;
4437 	T2_ = signal(((int) 11), signalHandler);
4438 	T3_ = (tyProc__ZEo3s9cIqJYP74f7GMZM2FA)0;
4439 	T3_ = signal(((int) 6), signalHandler);
4440 	T4_ = (tyProc__ZEo3s9cIqJYP74f7GMZM2FA)0;
4441 	T4_ = signal(((int) 8), signalHandler);
4442 	T5_ = (tyProc__ZEo3s9cIqJYP74f7GMZM2FA)0;
4443 	T5_ = signal(((int) 4), signalHandler);
4444 	T6_ = (tyProc__ZEo3s9cIqJYP74f7GMZM2FA)0;
4445 	T6_ = signal(((int) 13), SIG_IGN);
4446 }
N_NIMCALL(NI,getRefcount)4447 N_LIB_PRIVATE N_NIMCALL(NI, getRefcount)(void* p) {
4448 	NI result;
4449 	tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T1_;
4450 	result = (NI)0;
4451 	T1_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
4452 	T1_ = usrToCell__system_5262(p);
4453 	result = (NI)((NI32)((*T1_).refcount) >> (NU32)(((NI) 3)));
4454 	return result;
4455 }
N_NIMCALL(void,nimRegisterGlobalMarker)4456 N_LIB_PRIVATE N_NIMCALL(void, nimRegisterGlobalMarker)(tyProc__T4eqaYlFJYZUv9aG9b1TV0bQ markerProc) {
4457 	{
4458 		if (!(globalMarkersLen <= ((NI) 3499))) goto LA3_;
4459 		globalMarkers[(globalMarkersLen)- 0] = markerProc;
4460 		globalMarkersLen += ((NI) 1);
4461 	}
4462 	goto LA1_;
4463 	LA3_: ;
4464 	{
4465 		rawWrite(stderr, "[GC] cannot register global variable; too many global variables");
4466 		exit(((NI) 1));
4467 	}
4468 	LA1_: ;
4469 }
N_NIMCALL(NimStringDesc *,reprEnum)4470 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, reprEnum)(NI e, TNimType* typ) {
4471 	NimStringDesc* result;
4472 	TNimNode* n;
4473 	NimStringDesc* T19_;
4474 	NimStringDesc* T20_;
4475 {	result = NIM_NIL;
4476 	n = (*typ).node;
4477 	{
4478 		NI o;
4479 		if (!!((((*typ).flags &((NU8)1<<((NU)(((tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ) 2))&7U)))!=0))) goto LA3_;
4480 		o = (NI)(e - (*(*n).sons[(((NI) 0))- 0]).offset);
4481 		{
4482 			NIM_BOOL T7_;
4483 			T7_ = (NIM_BOOL)0;
4484 			T7_ = (((NI) 0) <= o);
4485 			if (!(T7_)) goto LA8_;
4486 			T7_ = ltpercent___system_1005(o, (*(*typ).node).len);
4487 			LA8_: ;
4488 			if (!T7_) goto LA9_;
4489 			result = cstrToNimstr((*(*n).sons[(o)- 0]).name);
4490 			goto BeforeRet_;
4491 		}
4492 		LA9_: ;
4493 	}
4494 	goto LA1_;
4495 	LA3_: ;
4496 	{
4497 		TNimNode** s;
4498 		s = (*n).sons;
4499 		{
4500 			NI i;
4501 			NI colontmp_;
4502 			NI res;
4503 			i = (NI)0;
4504 			colontmp_ = (NI)0;
4505 			colontmp_ = (NI)((*n).len - ((NI) 1));
4506 			res = ((NI) 0);
4507 			{
4508 				while (1) {
4509 					if (!(res <= colontmp_)) goto LA14;
4510 					i = res;
4511 					{
4512 						if (!((*s[(i)- 0]).offset == e)) goto LA17_;
4513 						result = cstrToNimstr((*s[(i)- 0]).name);
4514 						goto BeforeRet_;
4515 					}
4516 					LA17_: ;
4517 					res += ((NI) 1);
4518 				} LA14: ;
4519 			}
4520 		}
4521 	}
4522 	LA1_: ;
4523 	T19_ = NIM_NIL;
4524 	T20_ = NIM_NIL;
4525 	T20_ = dollar___systemZdollars_3(e);
4526 	T19_ = rawNewString((T20_ ? T20_->Sup.len : 0) + 16);
4527 appendString(T19_, T20_);
4528 appendString(T19_, ((NimStringDesc*) &TM__Q5wkpxktOdTGvlSRo9bzt9aw_16));
4529 	result = T19_;
4530 	}BeforeRet_: ;
4531 	return result;
4532 }
N_NIMCALL(void,Marker_tyRef__8SzoIAgLw9ci2v0yafHj9b6Q)4533 static N_NIMCALL(void, Marker_tyRef__8SzoIAgLw9ci2v0yafHj9b6Q)(void* p, NI op) {
4534 	tyObject_KeyError__t7nhKLvXTQS9cS8ByJU9bIag* a;
4535 	a = (tyObject_KeyError__t7nhKLvXTQS9cS8ByJU9bIag*)p;
4536 	nimGCvisit((void*)(*a).Sup.Sup.Sup.parent, op);
4537 	nimGCvisit((void*)(*a).Sup.Sup.Sup.message, op);
4538 	nimGCvisit((void*)(*a).Sup.Sup.Sup.trace, op);
4539 	nimGCvisit((void*)(*a).Sup.Sup.Sup.up, op);
4540 }
N_NIMCALL(NimStringDesc *,copyString)4541 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, copyString)(NimStringDesc* src) {
4542 	NimStringDesc* result;
4543 	result = (NimStringDesc*)0;
4544 	{
4545 		if (!!((src == ((NimStringDesc*) NIM_NIL)))) goto LA3_;
4546 		{
4547 			if (!!(((NI)((*src).Sup.reserved & ((NI) (-2147483647 -1))) == ((NI) 0)))) goto LA7_;
4548 			result = src;
4549 		}
4550 		goto LA5_;
4551 		LA7_: ;
4552 		{
4553 			result = rawNewStringNoInit((*src).Sup.len);
4554 			(*result).Sup.len = (*src).Sup.len;
4555 			copyMem__system_1727(((void*) ((*result).data)), ((void*) ((*src).data)), ((NI) ((NI)((*src).Sup.len + ((NI) 1)))));
4556 		}
4557 		LA5_: ;
4558 	}
4559 	LA3_: ;
4560 	return result;
4561 }
N_NIMCALL(void *,dataPointer__system_5860)4562 N_LIB_PRIVATE N_NIMCALL(void*, dataPointer__system_5860)(TGenericSeq* a, NI elemAlign, NI elemSize, NI index) {
4563 	void* result;
4564 	NI T1_;
4565 	NI T2_;
4566 	NI T3_;
4567 	NI T4_;
4568 	result = (void*)0;
4569 	T1_ = (NI)0;
4570 	T1_ = align__system_1624(((NI) 8), elemAlign);
4571 	T2_ = (NI)0;
4572 	T2_ = pluspercent___system_696(((NI) (ptrdiff_t) (a)), T1_);
4573 	T3_ = (NI)0;
4574 	T3_ = starpercent___system_736(index, elemSize);
4575 	T4_ = (NI)0;
4576 	T4_ = pluspercent___system_696(T2_, T3_);
4577 	result = ((void*) (T4_));
4578 	return result;
4579 }
N_NIMCALL(TNimType *,extGetCellType)4580 N_LIB_PRIVATE N_NIMCALL(TNimType*, extGetCellType)(void* c) {
4581 	TNimType* result;
4582 	tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T1_;
4583 	result = (TNimType*)0;
4584 	T1_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
4585 	T1_ = usrToCell__system_5262(c);
4586 	result = (*T1_).typ;
4587 	return result;
4588 }
N_NIMCALL(TGenericSeq *,setLengthSeqV2)4589 N_LIB_PRIVATE N_NIMCALL(TGenericSeq*, setLengthSeqV2)(TGenericSeq* s, TNimType* typ, NI newLen) {
4590 	TGenericSeq* result;
4591 	result = (TGenericSeq*)0;
4592 	{
4593 		void* T5_;
4594 		if (!(s == ((TGenericSeq*) NIM_NIL))) goto LA3_;
4595 		T5_ = (void*)0;
4596 		T5_ = newSeq(typ, newLen);
4597 		result = ((TGenericSeq*) (T5_));
4598 	}
4599 	goto LA1_;
4600 	LA3_: ;
4601 	{
4602 		NI elemSize;
4603 		NI elemAlign;
4604 		elemSize = (*(*typ).base).size;
4605 		elemAlign = (*(*typ).base).align;
4606 		{
4607 			NI r;
4608 			NI T11_;
4609 			void* T12_;
4610 			void* T13_;
4611 			void* T14_;
4612 			if (!((NI)((*s).reserved & ((NI) 1073741823)) < newLen)) goto LA9_;
4613 			T11_ = (NI)0;
4614 			T11_ = resize__system_5866((NI)((*s).reserved & ((NI) 1073741823)));
4615 			r = ((T11_ >= newLen) ? T11_ : newLen);
4616 			T12_ = (void*)0;
4617 			T12_ = newSeq(typ, r);
4618 			result = ((TGenericSeq*) (T12_));
4619 			T13_ = (void*)0;
4620 			T13_ = dataPointer__system_5856(result, elemAlign);
4621 			T14_ = (void*)0;
4622 			T14_ = dataPointer__system_5856(s, elemAlign);
4623 			copyMem__system_1727(T13_, T14_, ((NI) ((NI)((*s).len * elemSize))));
4624 			(*s).len = ((NI) 0);
4625 		}
4626 		goto LA7_;
4627 		LA9_: ;
4628 		{
4629 			void* T27_;
4630 			NI T28_;
4631 			NI T29_;
4632 			if (!(newLen < (*s).len)) goto LA16_;
4633 			result = s;
4634 			{
4635 				if (!!((((*(*typ).base).flags &((NU8)1<<((NU)(((tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ) 0))&7U)))!=0))) goto LA20_;
4636 				{
4637 					NI i;
4638 					NI colontmp_;
4639 					NI res;
4640 					i = (NI)0;
4641 					colontmp_ = (NI)0;
4642 					colontmp_ = (NI)((*result).len - ((NI) 1));
4643 					res = newLen;
4644 					{
4645 						while (1) {
4646 							void* T25_;
4647 							TNimType* T26_;
4648 							if (!(res <= colontmp_)) goto LA24;
4649 							i = res;
4650 							T25_ = (void*)0;
4651 							T25_ = dataPointer__system_5860(result, elemAlign, elemSize, i);
4652 							T26_ = (TNimType*)0;
4653 							T26_ = extGetCellType(((void*) (result)));
4654 							forAllChildrenAux__system_5296(T25_, (*T26_).base, ((tyEnum_WalkOp__Wfy7gT5VQ8B3aJBxqU8D9cQ) 2));
4655 							res += ((NI) 1);
4656 						} LA24: ;
4657 					}
4658 				}
4659 			}
4660 			LA20_: ;
4661 			T27_ = (void*)0;
4662 			T27_ = dataPointer__system_5860(result, elemAlign, elemSize, newLen);
4663 			T28_ = (NI)0;
4664 			T28_ = minuspercent___system_716((*result).len, newLen);
4665 			T29_ = (NI)0;
4666 			T29_ = starpercent___system_736(T28_, elemSize);
4667 			zeroMem__system_1724(T27_, ((NI) (T29_)));
4668 		}
4669 		goto LA7_;
4670 		LA16_: ;
4671 		{
4672 			void* T31_;
4673 			NI T32_;
4674 			NI T33_;
4675 			result = s;
4676 			T31_ = (void*)0;
4677 			T31_ = dataPointer__system_5860(result, elemAlign, elemSize, (*result).len);
4678 			T32_ = (NI)0;
4679 			T32_ = minuspercent___system_716(newLen, (*result).len);
4680 			T33_ = (NI)0;
4681 			T33_ = starpercent___system_736(T32_, elemSize);
4682 			zeroMem__system_1724(T31_, ((NI) (T33_)));
4683 		}
4684 		LA7_: ;
4685 		(*result).len = newLen;
4686 	}
4687 	LA1_: ;
4688 	return result;
4689 }
N_NIMCALL(void,Marker_tyRef__S8DV6hfcgC9c0IiUsAoR29cQ)4690 static N_NIMCALL(void, Marker_tyRef__S8DV6hfcgC9c0IiUsAoR29cQ)(void* p, NI op) {
4691 	tyObject_AssertionDefect__PtYxPmY5X0dorfvxAFbJpQ* a;
4692 	a = (tyObject_AssertionDefect__PtYxPmY5X0dorfvxAFbJpQ*)p;
4693 	nimGCvisit((void*)(*a).Sup.Sup.parent, op);
4694 	nimGCvisit((void*)(*a).Sup.Sup.message, op);
4695 	nimGCvisit((void*)(*a).Sup.Sup.trace, op);
4696 	nimGCvisit((void*)(*a).Sup.Sup.up, op);
4697 }
N_NIMCALL(NimStringDesc *,substr__system_7713)4698 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, substr__system_7713)(NimStringDesc* s, NI first, NI last) {
4699 	NimStringDesc* result;
4700 	NI first_2;
4701 	NI L;
4702 	result = NIM_NIL;
4703 	first_2 = ((first >= ((NI) 0)) ? first : ((NI) 0));
4704 	L = (((NI)((NI)(((last <= ((s ? s->Sup.len : 0)-1)) ? last : ((s ? s->Sup.len : 0)-1)) - first_2) + ((NI) 1)) >= ((NI) 0)) ? (NI)((NI)(((last <= ((s ? s->Sup.len : 0)-1)) ? last : ((s ? s->Sup.len : 0)-1)) - first_2) + ((NI) 1)) : ((NI) 0));
4705 	result = mnewString(((NI) (L)));
4706 	{
4707 		NI i;
4708 		NI colontmp_;
4709 		NI res;
4710 		i = (NI)0;
4711 		colontmp_ = (NI)0;
4712 		colontmp_ = (NI)(L - ((NI) 1));
4713 		res = ((NI) 0);
4714 		{
4715 			while (1) {
4716 				if (!(res <= colontmp_)) goto LA3;
4717 				i = res;
4718 				result->data[i] = s->data[(NI)(i + first_2)];
4719 				res += ((NI) 1);
4720 			} LA3: ;
4721 		}
4722 	}
4723 	return result;
4724 }
N_NIMCALL(NimStringDesc *,nimCharToStr)4725 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nimCharToStr)(NIM_CHAR x) {
4726 	NimStringDesc* result;
4727 	result = NIM_NIL;
4728 	result = mnewString(((NI) 1));
4729 	result->data[((NI) 0)] = x;
4730 	return result;
4731 }
N_NIMCALL(void,addFloatRoundtrip__system_3127)4732 N_LIB_PRIVATE N_NIMCALL(void, addFloatRoundtrip__system_3127)(NimStringDesc** result, NF x) {
4733 	tyArray__eVNFTutn6un5gcq48fQLdg buffer;
4734 	NI n;
4735 	n = writeFloatToBufferRoundtrip__systemZformatfloat_13(buffer, x);
4736 	addCstringN__systemZformatfloat_5(result, ((NCSTRING) ((&buffer[(((NI) 0))- 0]))), n);
4737 }
N_NIMCALL(void,GC_disableMarkAndSweep__system_2267)4738 N_LIB_PRIVATE N_NIMCALL(void, GC_disableMarkAndSweep__system_2267)(void) {
4739 	gch__system_5209.cycleThreshold = ((NI) 2147483646);
4740 }
N_NIMCALL(void *,newSeqRC1)4741 N_LIB_PRIVATE N_NIMCALL(void*, newSeqRC1)(TNimType* typ, NI len) {
4742 	void* result;
4743 	NI size;
4744 	NI T1_;
4745 	NI TM__Q5wkpxktOdTGvlSRo9bzt9aw_17;
4746 	NI TM__Q5wkpxktOdTGvlSRo9bzt9aw_18;
4747 	result = (void*)0;
4748 	T1_ = (NI)0;
4749 	T1_ = align__system_1624(((NI) 8), (*(*typ).base).align);
4750 	if (nimMulInt(len, (*(*typ).base).size, &TM__Q5wkpxktOdTGvlSRo9bzt9aw_17)) { raiseOverflow(); };
4751 	if (nimAddInt(T1_, (NI)(TM__Q5wkpxktOdTGvlSRo9bzt9aw_17), &TM__Q5wkpxktOdTGvlSRo9bzt9aw_18)) { raiseOverflow(); };
4752 	size = (NI)(TM__Q5wkpxktOdTGvlSRo9bzt9aw_18);
4753 	result = newObjRC1(typ, size);
4754 	(*((TGenericSeq*) (result))).len = len;
4755 	(*((TGenericSeq*) (result))).reserved = len;
4756 	return result;
4757 }
N_NIMCALL(void *,nimNewSeqOfCap)4758 N_LIB_PRIVATE N_NIMCALL(void*, nimNewSeqOfCap)(TNimType* typ, NI cap) {
4759 	void* result;
4760 	NI s;
4761 	NI T1_;
4762 	NI TM__Q5wkpxktOdTGvlSRo9bzt9aw_19;
4763 	NI TM__Q5wkpxktOdTGvlSRo9bzt9aw_20;
4764 	result = (void*)0;
4765 	T1_ = (NI)0;
4766 	T1_ = align__system_1624(((NI) 8), (*(*typ).base).align);
4767 	if (nimMulInt(cap, (*(*typ).base).size, &TM__Q5wkpxktOdTGvlSRo9bzt9aw_19)) { raiseOverflow(); };
4768 	if (nimAddInt(T1_, (NI)(TM__Q5wkpxktOdTGvlSRo9bzt9aw_19), &TM__Q5wkpxktOdTGvlSRo9bzt9aw_20)) { raiseOverflow(); };
4769 	s = (NI)(TM__Q5wkpxktOdTGvlSRo9bzt9aw_20);
4770 	{
4771 		if (!(((*(*typ).base).flags &((NU8)1<<((NU)(((tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ) 0))&7U)))!=0)) goto LA4_;
4772 		result = newObjNoInit(typ, s);
4773 	}
4774 	goto LA2_;
4775 	LA4_: ;
4776 	{
4777 		result = newObj(typ, s);
4778 	}
4779 	LA2_: ;
4780 	(*((TGenericSeq*) (result))).len = ((NI) 0);
4781 	(*((TGenericSeq*) (result))).reserved = cap;
4782 	return result;
4783 }
N_NIMCALL(void,genericReset)4784 N_LIB_PRIVATE N_NIMCALL(void, genericReset)(void* dest, TNimType* mt) {
4785 	NI d;
4786 	d = ((NI) (ptrdiff_t) (dest));
4787 	switch ((*mt).kind) {
4788 	case ((tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A) 22):
4789 	{
4790 		unsureAsgnRef(((void**) (dest)), NIM_NIL);
4791 	}
4792 	break;
4793 	case ((tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A) 28):
4794 	{
4795 		unsureAsgnRef(((void**) (dest)), NIM_NIL);
4796 	}
4797 	break;
4798 	case ((tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A) 24):
4799 	{
4800 		unsureAsgnRef(((void**) (dest)), NIM_NIL);
4801 	}
4802 	break;
4803 	case ((tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A) 18):
4804 	{
4805 		genericResetAux__system_6374(dest, (*mt).node);
4806 	}
4807 	break;
4808 	case ((tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A) 17):
4809 	{
4810 		TNimType** pint;
4811 		genericResetAux__system_6374(dest, (*mt).node);
4812 		pint = ((TNimType**) (dest));
4813 		(*pint) = ((TNimType*) NIM_NIL);
4814 	}
4815 	break;
4816 	case ((tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A) 16):
4817 	case ((tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A) 4):
4818 	{
4819 		{
4820 			NI i;
4821 			NI colontmp_;
4822 			NI res;
4823 			i = (NI)0;
4824 			colontmp_ = (NI)0;
4825 			colontmp_ = (NI)((NI)((*mt).size / (*(*mt).base).size) - ((NI) 1));
4826 			res = ((NI) 0);
4827 			{
4828 				while (1) {
4829 					NI T10_;
4830 					NI T11_;
4831 					if (!(res <= colontmp_)) goto LA9;
4832 					i = res;
4833 					T10_ = (NI)0;
4834 					T10_ = starpercent___system_736(i, (*(*mt).base).size);
4835 					T11_ = (NI)0;
4836 					T11_ = pluspercent___system_696(d, T10_);
4837 					genericReset(((void*) (T11_)), (*mt).base);
4838 					res += ((NI) 1);
4839 				} LA9: ;
4840 			}
4841 		}
4842 	}
4843 	break;
4844 	default:
4845 	{
4846 		zeroMem__system_1724(dest, ((NI) ((*mt).size)));
4847 	}
4848 	break;
4849 	}
4850 }
N_NIMCALL(void,genericResetAux__system_6374)4851 N_LIB_PRIVATE N_NIMCALL(void, genericResetAux__system_6374)(void* dest, TNimNode* n) {
4852 	NI d;
4853 	d = ((NI) (ptrdiff_t) (dest));
4854 	switch ((*n).kind) {
4855 	case ((tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ) 0):
4856 	{
4857 	}
4858 	break;
4859 	case ((tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ) 1):
4860 	{
4861 		NI T3_;
4862 		T3_ = (NI)0;
4863 		T3_ = pluspercent___system_696(d, (*n).offset);
4864 		genericReset(((void*) (T3_)), (*n).typ);
4865 	}
4866 	break;
4867 	case ((tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ) 2):
4868 	{
4869 		{
4870 			NI i;
4871 			NI colontmp_;
4872 			NI res;
4873 			i = (NI)0;
4874 			colontmp_ = (NI)0;
4875 			colontmp_ = (NI)((*n).len - ((NI) 1));
4876 			res = ((NI) 0);
4877 			{
4878 				while (1) {
4879 					if (!(res <= colontmp_)) goto LA7;
4880 					i = res;
4881 					genericResetAux__system_6374(dest, (*n).sons[(i)- 0]);
4882 					res += ((NI) 1);
4883 				} LA7: ;
4884 			}
4885 		}
4886 	}
4887 	break;
4888 	case ((tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ) 3):
4889 	{
4890 		TNimNode* m;
4891 		NI T13_;
4892 		m = selectBranch__system_3645(dest, n);
4893 		{
4894 			if (!!((m == ((TNimNode*) NIM_NIL)))) goto LA11_;
4895 			genericResetAux__system_6374(dest, m);
4896 		}
4897 		LA11_: ;
4898 		T13_ = (NI)0;
4899 		T13_ = pluspercent___system_696(d, (*n).offset);
4900 		zeroMem__system_1724(((void*) (T13_)), ((NI) ((*(*n).typ).size)));
4901 	}
4902 	break;
4903 	}
4904 }
N_NIMCALL(void,genericAssignAux__system_6382)4905 N_LIB_PRIVATE N_NIMCALL(void, genericAssignAux__system_6382)(void* dest, void* src, TNimNode* n, NIM_BOOL shallow) {
4906 	NI d;
4907 	NI s;
4908 	d = ((NI) (ptrdiff_t) (dest));
4909 	s = ((NI) (ptrdiff_t) (src));
4910 	switch ((*n).kind) {
4911 	case ((tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ) 1):
4912 	{
4913 		NI T2_;
4914 		NI T3_;
4915 		T2_ = (NI)0;
4916 		T2_ = pluspercent___system_696(d, (*n).offset);
4917 		T3_ = (NI)0;
4918 		T3_ = pluspercent___system_696(s, (*n).offset);
4919 		genericAssignAux__system_6377(((void*) (T2_)), ((void*) (T3_)), (*n).typ, shallow);
4920 	}
4921 	break;
4922 	case ((tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ) 2):
4923 	{
4924 		{
4925 			NI i;
4926 			NI colontmp_;
4927 			NI res;
4928 			i = (NI)0;
4929 			colontmp_ = (NI)0;
4930 			colontmp_ = (NI)((*n).len - ((NI) 1));
4931 			res = ((NI) 0);
4932 			{
4933 				while (1) {
4934 					if (!(res <= colontmp_)) goto LA7;
4935 					i = res;
4936 					genericAssignAux__system_6382(dest, src, (*n).sons[(i)- 0], shallow);
4937 					res += ((NI) 1);
4938 				} LA7: ;
4939 			}
4940 		}
4941 	}
4942 	break;
4943 	case ((tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ) 3):
4944 	{
4945 		TNimNode* dd;
4946 		TNimNode* m;
4947 		NI T15_;
4948 		NI T16_;
4949 		dd = selectBranch__system_3645(dest, n);
4950 		m = selectBranch__system_3645(src, n);
4951 		{
4952 			NIM_BOOL T11_;
4953 			T11_ = (NIM_BOOL)0;
4954 			T11_ = !((m == dd));
4955 			if (!(T11_)) goto LA12_;
4956 			T11_ = !((dd == ((TNimNode*) NIM_NIL)));
4957 			LA12_: ;
4958 			if (!T11_) goto LA13_;
4959 			genericResetAux__system_6374(dest, dd);
4960 		}
4961 		LA13_: ;
4962 		T15_ = (NI)0;
4963 		T15_ = pluspercent___system_696(d, (*n).offset);
4964 		T16_ = (NI)0;
4965 		T16_ = pluspercent___system_696(s, (*n).offset);
4966 		copyMem__system_1727(((void*) (T15_)), ((void*) (T16_)), ((NI) ((*(*n).typ).size)));
4967 		{
4968 			if (!!((m == ((TNimNode*) NIM_NIL)))) goto LA19_;
4969 			genericAssignAux__system_6382(dest, src, m, shallow);
4970 		}
4971 		LA19_: ;
4972 	}
4973 	break;
4974 	case ((tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ) 0):
4975 	{
4976 	}
4977 	break;
4978 	}
4979 }
N_NIMCALL(void,Marker_tyRef__C0A9bPZSVeyr2BWpBf4Jxqw)4980 static N_NIMCALL(void, Marker_tyRef__C0A9bPZSVeyr2BWpBf4Jxqw)(void* p, NI op) {
4981 	tyObject_ObjectAssignmentDefect__6toVe0IizlEwN9bORXEdX3g* a;
4982 	a = (tyObject_ObjectAssignmentDefect__6toVe0IizlEwN9bORXEdX3g*)p;
4983 	nimGCvisit((void*)(*a).Sup.Sup.parent, op);
4984 	nimGCvisit((void*)(*a).Sup.Sup.message, op);
4985 	nimGCvisit((void*)(*a).Sup.Sup.trace, op);
4986 	nimGCvisit((void*)(*a).Sup.Sup.up, op);
4987 }
N_INLINE(void,sysFatal__system_3290)4988 static N_INLINE(void, sysFatal__system_3290)(NimStringDesc* message) {
4989 	tyObject_ObjectAssignmentDefect__6toVe0IizlEwN9bORXEdX3g* T1_;
4990 	NimStringDesc* T2_;
4991 	T1_ = NIM_NIL;
4992 	T1_ = (tyObject_ObjectAssignmentDefect__6toVe0IizlEwN9bORXEdX3g*) newObj((&NTIrefobjectassignmentdefect__C0A9bPZSVeyr2BWpBf4Jxqw_), sizeof(tyObject_ObjectAssignmentDefect__6toVe0IizlEwN9bORXEdX3g));
4993 	(*T1_).Sup.Sup.Sup.m_type = (&NTIobjectassignmentdefect__6toVe0IizlEwN9bORXEdX3g_);
4994 	(*T1_).Sup.Sup.name = "ObjectAssignmentDefect";
4995 	T2_ = NIM_NIL;
4996 	T2_ = (*T1_).Sup.Sup.message; (*T1_).Sup.Sup.message = copyStringRC1(message);
4997 	if (T2_) nimGCunrefNoCycle(T2_);
4998 	raiseExceptionEx((Exception*)T1_, "ObjectAssignmentDefect", "sysFatal", "fatal.nim", 53);
4999 }
N_INLINE(void,chckObjAsgn)5000 static N_INLINE(void, chckObjAsgn)(TNimType* a, TNimType* b) {
5001 	{
5002 		if (!!((a == b))) goto LA3_;
5003 		sysFatal__system_3290(((NimStringDesc*) &TM__Q5wkpxktOdTGvlSRo9bzt9aw_21));
5004 	}
5005 	LA3_: ;
5006 }
N_NIMCALL(void,genericAssignAux__system_6377)5007 N_LIB_PRIVATE N_NIMCALL(void, genericAssignAux__system_6377)(void* dest, void* src, TNimType* mt, NIM_BOOL shallow) {
5008 	NI d;
5009 	NI s;
5010 {	d = ((NI) (ptrdiff_t) (dest));
5011 	s = ((NI) (ptrdiff_t) (src));
5012 	switch ((*mt).kind) {
5013 	case ((tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A) 28):
5014 	{
5015 		void** x;
5016 		void* s2;
5017 		x = ((void**) (dest));
5018 		s2 = (*((void**) (s)));
5019 		{
5020 			NIM_BOOL T4_;
5021 			NIM_BOOL T5_;
5022 			T4_ = (NIM_BOOL)0;
5023 			T5_ = (NIM_BOOL)0;
5024 			T5_ = (s2 == NIM_NIL);
5025 			if (T5_) goto LA6_;
5026 			T5_ = shallow;
5027 			LA6_: ;
5028 			T4_ = T5_;
5029 			if (T4_) goto LA7_;
5030 			T4_ = !(((NI)((*((TGenericSeq*) (s2))).reserved & ((NI) (-2147483647 -1))) == ((NI) 0)));
5031 			LA7_: ;
5032 			if (!T4_) goto LA8_;
5033 			unsureAsgnRef(x, s2);
5034 		}
5035 		goto LA2_;
5036 		LA8_: ;
5037 		{
5038 			NimStringDesc* T11_;
5039 			T11_ = (NimStringDesc*)0;
5040 			T11_ = copyString(((NimStringDesc*) (s2)));
5041 			unsureAsgnRef(x, ((void*) (T11_)));
5042 		}
5043 		LA2_: ;
5044 	}
5045 	break;
5046 	case ((tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A) 24):
5047 	{
5048 		void* s2_2;
5049 		TGenericSeq* seq;
5050 		void** x_2;
5051 		s2_2 = (*((void**) (src)));
5052 		seq = ((TGenericSeq*) (s2_2));
5053 		x_2 = ((void**) (dest));
5054 		{
5055 			NIM_BOOL T15_;
5056 			NIM_BOOL T16_;
5057 			T15_ = (NIM_BOOL)0;
5058 			T16_ = (NIM_BOOL)0;
5059 			T16_ = (s2_2 == NIM_NIL);
5060 			if (T16_) goto LA17_;
5061 			T16_ = shallow;
5062 			LA17_: ;
5063 			T15_ = T16_;
5064 			if (T15_) goto LA18_;
5065 			T15_ = !(((NI)((*seq).reserved & ((NI) (-2147483647 -1))) == ((NI) 0)));
5066 			LA18_: ;
5067 			if (!T15_) goto LA19_;
5068 			unsureAsgnRef(x_2, s2_2);
5069 			goto BeforeRet_;
5070 		}
5071 		LA19_: ;
5072 		{
5073 			void* ss;
5074 			NI dst;
5075 			NI T25_;
5076 			NI T26_;
5077 			NI T27_;
5078 			NI T28_;
5079 			NI T29_;
5080 			if (!(((*(*mt).base).flags &((NU8)1<<((NU)(((tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ) 0))&7U)))!=0)) goto LA23_;
5081 			ss = nimNewSeqOfCap(mt, (*seq).len);
5082 			(*((TGenericSeq*) (ss))).len = (*seq).len;
5083 			unsureAsgnRef(x_2, ss);
5084 			dst = ((NI) (ptrdiff_t) ((*((void**) (dest)))));
5085 			T25_ = (NI)0;
5086 			T25_ = align__system_1624(((NI) 8), (*(*mt).base).align);
5087 			T26_ = (NI)0;
5088 			T26_ = pluspercent___system_696(dst, T25_);
5089 			T27_ = (NI)0;
5090 			T27_ = align__system_1624(((NI) 8), (*(*mt).base).align);
5091 			T28_ = (NI)0;
5092 			T28_ = pluspercent___system_696(((NI) (ptrdiff_t) (s2_2)), T27_);
5093 			T29_ = (NI)0;
5094 			T29_ = starpercent___system_736((*seq).len, (*(*mt).base).size);
5095 			copyMem__system_1727(((void*) (T26_)), ((void*) (T28_)), ((NI) (T29_)));
5096 		}
5097 		goto LA21_;
5098 		LA23_: ;
5099 		{
5100 			void* T31_;
5101 			NI dst_2;
5102 			T31_ = (void*)0;
5103 			T31_ = newSeq(mt, (*seq).len);
5104 			unsureAsgnRef(x_2, T31_);
5105 			dst_2 = ((NI) (ptrdiff_t) ((*((void**) (dest)))));
5106 			{
5107 				NI i;
5108 				NI colontmp_;
5109 				NI res;
5110 				i = (NI)0;
5111 				colontmp_ = (NI)0;
5112 				colontmp_ = (NI)((*seq).len - ((NI) 1));
5113 				res = ((NI) 0);
5114 				{
5115 					while (1) {
5116 						NI T35_;
5117 						NI T36_;
5118 						NI T37_;
5119 						NI T38_;
5120 						NI T39_;
5121 						NI T40_;
5122 						NI T41_;
5123 						NI T42_;
5124 						if (!(res <= colontmp_)) goto LA34;
5125 						i = res;
5126 						T35_ = (NI)0;
5127 						T35_ = align__system_1624(((NI) 8), (*(*mt).base).align);
5128 						T36_ = (NI)0;
5129 						T36_ = pluspercent___system_696(dst_2, T35_);
5130 						T37_ = (NI)0;
5131 						T37_ = starpercent___system_736(i, (*(*mt).base).size);
5132 						T38_ = (NI)0;
5133 						T38_ = pluspercent___system_696(T36_, T37_);
5134 						T39_ = (NI)0;
5135 						T39_ = align__system_1624(((NI) 8), (*(*mt).base).align);
5136 						T40_ = (NI)0;
5137 						T40_ = pluspercent___system_696(((NI) (ptrdiff_t) (s2_2)), T39_);
5138 						T41_ = (NI)0;
5139 						T41_ = starpercent___system_736(i, (*(*mt).base).size);
5140 						T42_ = (NI)0;
5141 						T42_ = pluspercent___system_696(T40_, T41_);
5142 						genericAssignAux__system_6377(((void*) (T38_)), ((void*) (T42_)), (*mt).base, shallow);
5143 						res += ((NI) 1);
5144 					} LA34: ;
5145 				}
5146 			}
5147 		}
5148 		LA21_: ;
5149 	}
5150 	break;
5151 	case ((tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A) 17):
5152 	{
5153 		TNimType* it;
5154 		TNimType** pint;
5155 		TNimType* srcType;
5156 		it = (*mt).base;
5157 		{
5158 			while (1) {
5159 				if (!!((it == ((TNimType*) NIM_NIL)))) goto LA45;
5160 				genericAssignAux__system_6382(dest, src, (*it).node, shallow);
5161 				it = (*it).base;
5162 			} LA45: ;
5163 		}
5164 		genericAssignAux__system_6382(dest, src, (*mt).node, shallow);
5165 		pint = ((TNimType**) (dest));
5166 		srcType = (*((TNimType**) (src)));
5167 		{
5168 			if (!!((srcType == ((TNimType*) NIM_NIL)))) goto LA48_;
5169 			chckObjAsgn(srcType, mt);
5170 		}
5171 		LA48_: ;
5172 		(*pint) = mt;
5173 	}
5174 	break;
5175 	case ((tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A) 18):
5176 	{
5177 		genericAssignAux__system_6382(dest, src, (*mt).node, shallow);
5178 	}
5179 	break;
5180 	case ((tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A) 16):
5181 	case ((tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A) 4):
5182 	{
5183 		{
5184 			NI i_2;
5185 			NI colontmp__2;
5186 			NI res_2;
5187 			i_2 = (NI)0;
5188 			colontmp__2 = (NI)0;
5189 			colontmp__2 = (NI)((NI)((*mt).size / (*(*mt).base).size) - ((NI) 1));
5190 			res_2 = ((NI) 0);
5191 			{
5192 				while (1) {
5193 					NI T55_;
5194 					NI T56_;
5195 					NI T57_;
5196 					NI T58_;
5197 					if (!(res_2 <= colontmp__2)) goto LA54;
5198 					i_2 = res_2;
5199 					T55_ = (NI)0;
5200 					T55_ = starpercent___system_736(i_2, (*(*mt).base).size);
5201 					T56_ = (NI)0;
5202 					T56_ = pluspercent___system_696(d, T55_);
5203 					T57_ = (NI)0;
5204 					T57_ = starpercent___system_736(i_2, (*(*mt).base).size);
5205 					T58_ = (NI)0;
5206 					T58_ = pluspercent___system_696(s, T57_);
5207 					genericAssignAux__system_6377(((void*) (T56_)), ((void*) (T58_)), (*mt).base, shallow);
5208 					res_2 += ((NI) 1);
5209 				} LA54: ;
5210 			}
5211 		}
5212 	}
5213 	break;
5214 	case ((tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A) 22):
5215 	{
5216 		unsureAsgnRef(((void**) (dest)), (*((void**) (s))));
5217 	}
5218 	break;
5219 	default:
5220 	{
5221 		copyMem__system_1727(dest, src, ((NI) ((*mt).size)));
5222 	}
5223 	break;
5224 	}
5225 	}BeforeRet_: ;
5226 }
N_NIMCALL(void,genericAssign)5227 N_LIB_PRIVATE N_NIMCALL(void, genericAssign)(void* dest, void* src, TNimType* mt) {
5228 	genericAssignAux__system_6377(dest, src, mt, NIM_FALSE);
5229 }
N_NIMCALL(void,genericSeqAssign)5230 N_LIB_PRIVATE N_NIMCALL(void, genericSeqAssign)(void* dest, void* src, TNimType* mt) {
5231 	void* src_2;
5232 	src_2 = src;
5233 	genericAssign(dest, ((void*) ((&src_2))), mt);
5234 }
N_NIMCALL(void,Marker_tyRef__RJnHOb9cQV3neNC9cDkRgMyw)5235 static N_NIMCALL(void, Marker_tyRef__RJnHOb9cQV3neNC9cDkRgMyw)(void* p, NI op) {
5236 	tyObject_IndexDefect__n6tGEPHKkh7E1AP9bj30WrQ* a;
5237 	a = (tyObject_IndexDefect__n6tGEPHKkh7E1AP9bj30WrQ*)p;
5238 	nimGCvisit((void*)(*a).Sup.Sup.parent, op);
5239 	nimGCvisit((void*)(*a).Sup.Sup.message, op);
5240 	nimGCvisit((void*)(*a).Sup.Sup.trace, op);
5241 	nimGCvisit((void*)(*a).Sup.Sup.up, op);
5242 }
N_NIMCALL(NimStringDesc *,substr__system_7725)5243 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, substr__system_7725)(NimStringDesc* s, NI first) {
5244 	NimStringDesc* result;
5245 	result = NIM_NIL;
5246 	result = substr__system_7713(s, first, ((s ? s->Sup.len : 0)-1));
5247 	return result;
5248 }
N_NIMCALL(NI,hashString)5249 N_LIB_PRIVATE N_NIMCALL(NI, hashString)(NimStringDesc* s) {
5250 	NI result;
5251 	NU h;
5252 	result = (NI)0;
5253 	h = ((NU) 0);
5254 	{
5255 		NI i;
5256 		NI colontmp_;
5257 		NI res;
5258 		i = (NI)0;
5259 		colontmp_ = (NI)0;
5260 		colontmp_ = (NI)((s ? s->Sup.len : 0) - ((NI) 1));
5261 		res = ((NI) 0);
5262 		{
5263 			while (1) {
5264 				if (!(res <= colontmp_)) goto LA3;
5265 				i = res;
5266 				h = (NU)((NU32)(h) + (NU32)(((NU) (((NU8)(s->data[i]))))));
5267 				h = (NU)((NU32)(h) + (NU32)((NU)((NU32)(h) << (NU32)(((NI) 10)))));
5268 				h = (NU)(h ^ (NU)((NU32)(h) >> (NU32)(((NI) 6))));
5269 				res += ((NI) 1);
5270 			} LA3: ;
5271 		}
5272 	}
5273 	h = (NU)((NU32)(h) + (NU32)((NU)((NU32)(h) << (NU32)(((NI) 3)))));
5274 	h = (NU)(h ^ (NU)((NU32)(h) >> (NU32)(((NI) 11))));
5275 	h = (NU)((NU32)(h) + (NU32)((NU)((NU32)(h) << (NU32)(((NI) 15)))));
5276 	result = ((NI) (h));
5277 	return result;
5278 }
N_NIMCALL(void,Marker_tyRef__Ie1m0dv1ZHg72IgPRr1cDw)5279 static N_NIMCALL(void, Marker_tyRef__Ie1m0dv1ZHg72IgPRr1cDw)(void* p, NI op) {
5280 	tyObject_ValueError__yoNlBGx0D2tRizIdhQuENw* a;
5281 	a = (tyObject_ValueError__yoNlBGx0D2tRizIdhQuENw*)p;
5282 	nimGCvisit((void*)(*a).Sup.Sup.parent, op);
5283 	nimGCvisit((void*)(*a).Sup.Sup.message, op);
5284 	nimGCvisit((void*)(*a).Sup.Sup.trace, op);
5285 	nimGCvisit((void*)(*a).Sup.Sup.up, op);
5286 }
N_INLINE(int,nimCmpMem)5287 static N_INLINE(int, nimCmpMem)(void* a, void* b, NI size) {
5288 	int result;
5289 	result = (int)0;
5290 	result = memcmp(a, b, ((size_t) (size)));
5291 	return result;
5292 }
N_NIMCALL(NI,cmp__system_1549)5293 N_LIB_PRIVATE N_NIMCALL(NI, cmp__system_1549)(NimStringDesc* x, NimStringDesc* y) {
5294 	NI result;
5295 	NI minlen;
5296 	int T1_;
5297 	result = (NI)0;
5298 	minlen = (((x ? x->Sup.len : 0) <= (y ? y->Sup.len : 0)) ? (x ? x->Sup.len : 0) : (y ? y->Sup.len : 0));
5299 	T1_ = (int)0;
5300 	T1_ = nimCmpMem(((void*) (nimToCStringConv(x))), ((void*) (nimToCStringConv(y))), ((NI) (((size_t) (minlen)))));
5301 	result = ((NI) (T1_));
5302 	{
5303 		if (!(result == ((NI) 0))) goto LA4_;
5304 		result = (NI)((x ? x->Sup.len : 0) - (y ? y->Sup.len : 0));
5305 	}
5306 	LA4_: ;
5307 	return result;
5308 }
N_NIMCALL(void,Marker_tyRef__9clYsYwyjCqe2PFTuCI3Ubg)5309 static N_NIMCALL(void, Marker_tyRef__9clYsYwyjCqe2PFTuCI3Ubg)(void* p, NI op) {
5310 	tyObject_OSError__BeJgrOdDsczOwEWOZbRfKA* a;
5311 	a = (tyObject_OSError__BeJgrOdDsczOwEWOZbRfKA*)p;
5312 	nimGCvisit((void*)(*a).Sup.Sup.parent, op);
5313 	nimGCvisit((void*)(*a).Sup.Sup.message, op);
5314 	nimGCvisit((void*)(*a).Sup.Sup.trace, op);
5315 	nimGCvisit((void*)(*a).Sup.Sup.up, op);
5316 }
N_NIMCALL(void,nimLeaveFinally)5317 N_LIB_PRIVATE N_NIMCALL(void, nimLeaveFinally)(void) {
5318 	{
5319 		if (!!((excHandler__system_2565 == ((TSafePoint*) NIM_NIL)))) goto LA3_;
5320 		_longjmp((*excHandler__system_2565).context, ((int) 1));
5321 	}
5322 	goto LA1_;
5323 	LA3_: ;
5324 	{
5325 		reportUnhandledError__system_2855(currException__system_2566);
5326 		exit(((NI) 1));
5327 	}
5328 	LA1_: ;
5329 }
N_NIMCALL(void,Marker_tyRef__HMIVdYjdZYWskTmTQVo5BQ)5330 static N_NIMCALL(void, Marker_tyRef__HMIVdYjdZYWskTmTQVo5BQ)(void* p, NI op) {
5331 	tyObject_IOError__iLZrPn9anoh9ad1MmO0RczFw* a;
5332 	a = (tyObject_IOError__iLZrPn9anoh9ad1MmO0RczFw*)p;
5333 	nimGCvisit((void*)(*a).Sup.Sup.parent, op);
5334 	nimGCvisit((void*)(*a).Sup.Sup.message, op);
5335 	nimGCvisit((void*)(*a).Sup.Sup.trace, op);
5336 	nimGCvisit((void*)(*a).Sup.Sup.up, op);
5337 }
N_NIMCALL(NIM_BOOL,isObj)5338 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isObj)(TNimType* obj, TNimType* subclass) {
5339 	NIM_BOOL result;
5340 	TNimType* x;
5341 {	result = (NIM_BOOL)0;
5342 	x = obj;
5343 	{
5344 		if (!(x == subclass)) goto LA3_;
5345 		result = NIM_TRUE;
5346 		goto BeforeRet_;
5347 	}
5348 	LA3_: ;
5349 	{
5350 		while (1) {
5351 			if (!!((x == subclass))) goto LA6;
5352 			{
5353 				if (!(x == ((TNimType*) NIM_NIL))) goto LA9_;
5354 				result = NIM_FALSE;
5355 				goto BeforeRet_;
5356 			}
5357 			LA9_: ;
5358 			x = (*x).base;
5359 		} LA6: ;
5360 	}
5361 	result = NIM_TRUE;
5362 	goto BeforeRet_;
5363 	}BeforeRet_: ;
5364 	return result;
5365 }
N_NIMCALL(void,quit__system_7143)5366 N_LIB_PRIVATE N_NIMCALL(void, quit__system_7143)(NimStringDesc* errormsg, NI errorcode) {
5367 	rawWrite(stderr, nimToCStringConv(errormsg));
5368 	rawWrite(stderr, "\012");
5369 	exit(errorcode);
5370 }
N_NIMCALL(NIM_BOOL,stackTraceAvailable__system_2747)5371 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, stackTraceAvailable__system_2747)(void) {
5372 	NIM_BOOL result;
5373 	result = (NIM_BOOL)0;
5374 	result = NIM_FALSE;
5375 	return result;
5376 }
N_INLINE(void,showErrorMessage2__system_2544)5377 static N_INLINE(void, showErrorMessage2__system_2544)(NimStringDesc* data) {
5378 	showErrorMessage__system_2536(nimToCStringConv(data), (data ? data->Sup.len : 0));
5379 }
N_NIMCALL(void,writeStackTrace__system_2161)5380 N_LIB_PRIVATE N_NIMCALL(void, writeStackTrace__system_2161)(void) {
5381 	NimStringDesc* s;
5382 	s = copyString(((NimStringDesc*) &TM__Q5wkpxktOdTGvlSRo9bzt9aw_22));
5383 	showErrorMessage2__system_2544(s);
5384 }
N_NIMCALL(void,Marker_tyRef__LEclZrWX2FQAodlapxGITw)5385 static N_NIMCALL(void, Marker_tyRef__LEclZrWX2FQAodlapxGITw)(void* p, NI op) {
5386 	tyObject_EOFError__KGSY1JdrNB7Xi8KDhXFhSg* a;
5387 	a = (tyObject_EOFError__KGSY1JdrNB7Xi8KDhXFhSg*)p;
5388 	nimGCvisit((void*)(*a).Sup.Sup.Sup.parent, op);
5389 	nimGCvisit((void*)(*a).Sup.Sup.Sup.message, op);
5390 	nimGCvisit((void*)(*a).Sup.Sup.Sup.trace, op);
5391 	nimGCvisit((void*)(*a).Sup.Sup.Sup.up, op);
5392 }
N_NIMCALL(void,Marker_tyRef__0vJvi4uHbxjbxlkkX7P1EA)5393 static N_NIMCALL(void, Marker_tyRef__0vJvi4uHbxjbxlkkX7P1EA)(void* p, NI op) {
5394 	RootObj* a;
5395 	a = (RootObj*)p;
5396 }
N_NIMCALL(NI,nimParseBiggestFloat)5397 N_LIB_PRIVATE N_NIMCALL(NI, nimParseBiggestFloat)(NimStringDesc* s, NF* number, NI start) {
5398 	NI result;
5399 	NI i;
5400 	NF sign;
5401 	NI kdigits;
5402 	NI fdigits;
5403 	NI exponent;
5404 	NU64 integer;
5405 	NI fracExponent;
5406 	NI expSign;
5407 	NI firstDigit;
5408 	NIM_BOOL hasSign;
5409 	NI realExponent;
5410 	NIM_BOOL expNegative;
5411 	NI absExponent;
5412 	NI digits;
5413 	tyArray__PGLh8drTnaWr3s1qUUSq2Q t;
5414 	NI ti;
5415 	NI maxlen;
5416 	NI endPos;
5417 {	result = (NI)0;
5418 	i = start;
5419 	sign = 1.0;
5420 	kdigits = ((NI) 0);
5421 	fdigits = ((NI) 0);
5422 	exponent = ((NI) 0);
5423 	integer = 0ULL;
5424 	fracExponent = ((NI) 0);
5425 	expSign = ((NI) 1);
5426 	firstDigit = ((NI) -1);
5427 	hasSign = NIM_FALSE;
5428 	{
5429 		NIM_BOOL T3_;
5430 		NIM_BOOL T5_;
5431 		T3_ = (NIM_BOOL)0;
5432 		T3_ = (i < (s ? s->Sup.len : 0));
5433 		if (!(T3_)) goto LA4_;
5434 		T5_ = (NIM_BOOL)0;
5435 		T5_ = ((NU8)(s->data[i]) == (NU8)(43));
5436 		if (T5_) goto LA6_;
5437 		T5_ = ((NU8)(s->data[i]) == (NU8)(45));
5438 		LA6_: ;
5439 		T3_ = T5_;
5440 		LA4_: ;
5441 		if (!T3_) goto LA7_;
5442 		hasSign = NIM_TRUE;
5443 		{
5444 			if (!((NU8)(s->data[i]) == (NU8)(45))) goto LA11_;
5445 			sign = -1.0;
5446 		}
5447 		LA11_: ;
5448 		i += ((NI) 1);
5449 	}
5450 	LA7_: ;
5451 	{
5452 		NIM_BOOL T15_;
5453 		NIM_BOOL T17_;
5454 		T15_ = (NIM_BOOL)0;
5455 		T15_ = ((NI)(i + ((NI) 2)) < (s ? s->Sup.len : 0));
5456 		if (!(T15_)) goto LA16_;
5457 		T17_ = (NIM_BOOL)0;
5458 		T17_ = ((NU8)(s->data[i]) == (NU8)(78));
5459 		if (T17_) goto LA18_;
5460 		T17_ = ((NU8)(s->data[i]) == (NU8)(110));
5461 		LA18_: ;
5462 		T15_ = T17_;
5463 		LA16_: ;
5464 		if (!T15_) goto LA19_;
5465 		{
5466 			NIM_BOOL T23_;
5467 			T23_ = (NIM_BOOL)0;
5468 			T23_ = ((NU8)(s->data[(NI)(i + ((NI) 1))]) == (NU8)(65));
5469 			if (T23_) goto LA24_;
5470 			T23_ = ((NU8)(s->data[(NI)(i + ((NI) 1))]) == (NU8)(97));
5471 			LA24_: ;
5472 			if (!T23_) goto LA25_;
5473 			{
5474 				NIM_BOOL T29_;
5475 				T29_ = (NIM_BOOL)0;
5476 				T29_ = ((NU8)(s->data[(NI)(i + ((NI) 2))]) == (NU8)(78));
5477 				if (T29_) goto LA30_;
5478 				T29_ = ((NU8)(s->data[(NI)(i + ((NI) 2))]) == (NU8)(110));
5479 				LA30_: ;
5480 				if (!T29_) goto LA31_;
5481 				{
5482 					NIM_BOOL T35_;
5483 					T35_ = (NIM_BOOL)0;
5484 					T35_ = ((s ? s->Sup.len : 0) <= (NI)(i + ((NI) 3)));
5485 					if (T35_) goto LA36_;
5486 					T35_ = !((((NU8)(s->data[(NI)(i + ((NI) 3))])) >= ((NU8)(97)) && ((NU8)(s->data[(NI)(i + ((NI) 3))])) <= ((NU8)(122)) || ((NU8)(s->data[(NI)(i + ((NI) 3))])) >= ((NU8)(65)) && ((NU8)(s->data[(NI)(i + ((NI) 3))])) <= ((NU8)(90)) || ((NU8)(s->data[(NI)(i + ((NI) 3))])) >= ((NU8)(48)) && ((NU8)(s->data[(NI)(i + ((NI) 3))])) <= ((NU8)(57)) || ((NU8)(s->data[(NI)(i + ((NI) 3))])) == ((NU8)(95))));
5487 					LA36_: ;
5488 					if (!T35_) goto LA37_;
5489 					(*number) = NAN;
5490 					result = (NI)((NI)(i + ((NI) 3)) - start);
5491 					goto BeforeRet_;
5492 				}
5493 				LA37_: ;
5494 			}
5495 			LA31_: ;
5496 		}
5497 		LA25_: ;
5498 		result = ((NI) 0);
5499 		goto BeforeRet_;
5500 	}
5501 	LA19_: ;
5502 	{
5503 		NIM_BOOL T41_;
5504 		NIM_BOOL T43_;
5505 		T41_ = (NIM_BOOL)0;
5506 		T41_ = ((NI)(i + ((NI) 2)) < (s ? s->Sup.len : 0));
5507 		if (!(T41_)) goto LA42_;
5508 		T43_ = (NIM_BOOL)0;
5509 		T43_ = ((NU8)(s->data[i]) == (NU8)(73));
5510 		if (T43_) goto LA44_;
5511 		T43_ = ((NU8)(s->data[i]) == (NU8)(105));
5512 		LA44_: ;
5513 		T41_ = T43_;
5514 		LA42_: ;
5515 		if (!T41_) goto LA45_;
5516 		{
5517 			NIM_BOOL T49_;
5518 			T49_ = (NIM_BOOL)0;
5519 			T49_ = ((NU8)(s->data[(NI)(i + ((NI) 1))]) == (NU8)(78));
5520 			if (T49_) goto LA50_;
5521 			T49_ = ((NU8)(s->data[(NI)(i + ((NI) 1))]) == (NU8)(110));
5522 			LA50_: ;
5523 			if (!T49_) goto LA51_;
5524 			{
5525 				NIM_BOOL T55_;
5526 				T55_ = (NIM_BOOL)0;
5527 				T55_ = ((NU8)(s->data[(NI)(i + ((NI) 2))]) == (NU8)(70));
5528 				if (T55_) goto LA56_;
5529 				T55_ = ((NU8)(s->data[(NI)(i + ((NI) 2))]) == (NU8)(102));
5530 				LA56_: ;
5531 				if (!T55_) goto LA57_;
5532 				{
5533 					NIM_BOOL T61_;
5534 					T61_ = (NIM_BOOL)0;
5535 					T61_ = ((s ? s->Sup.len : 0) <= (NI)(i + ((NI) 3)));
5536 					if (T61_) goto LA62_;
5537 					T61_ = !((((NU8)(s->data[(NI)(i + ((NI) 3))])) >= ((NU8)(97)) && ((NU8)(s->data[(NI)(i + ((NI) 3))])) <= ((NU8)(122)) || ((NU8)(s->data[(NI)(i + ((NI) 3))])) >= ((NU8)(65)) && ((NU8)(s->data[(NI)(i + ((NI) 3))])) <= ((NU8)(90)) || ((NU8)(s->data[(NI)(i + ((NI) 3))])) >= ((NU8)(48)) && ((NU8)(s->data[(NI)(i + ((NI) 3))])) <= ((NU8)(57)) || ((NU8)(s->data[(NI)(i + ((NI) 3))])) == ((NU8)(95))));
5538 					LA62_: ;
5539 					if (!T61_) goto LA63_;
5540 					(*number) = ((NF)(INF) * (NF)(sign));
5541 					result = (NI)((NI)(i + ((NI) 3)) - start);
5542 					goto BeforeRet_;
5543 				}
5544 				LA63_: ;
5545 			}
5546 			LA57_: ;
5547 		}
5548 		LA51_: ;
5549 		result = ((NI) 0);
5550 		goto BeforeRet_;
5551 	}
5552 	LA45_: ;
5553 	{
5554 		NIM_BOOL T67_;
5555 		T67_ = (NIM_BOOL)0;
5556 		T67_ = (i < (s ? s->Sup.len : 0));
5557 		if (!(T67_)) goto LA68_;
5558 		T67_ = (((NU8)(s->data[i])) >= ((NU8)(48)) && ((NU8)(s->data[i])) <= ((NU8)(57)));
5559 		LA68_: ;
5560 		if (!T67_) goto LA69_;
5561 		firstDigit = (NI)(((NU8)(s->data[i])) - ((NI) 48));
5562 	}
5563 	LA69_: ;
5564 	{
5565 		while (1) {
5566 			NIM_BOOL T73_;
5567 			T73_ = (NIM_BOOL)0;
5568 			T73_ = (i < (s ? s->Sup.len : 0));
5569 			if (!(T73_)) goto LA74_;
5570 			T73_ = (((NU8)(s->data[i])) >= ((NU8)(48)) && ((NU8)(s->data[i])) <= ((NU8)(57)));
5571 			LA74_: ;
5572 			if (!T73_) goto LA72;
5573 			kdigits += ((NI) 1);
5574 			integer = (NU64)((NU64)((NU64)((NU64)(integer) * (NU64)(10ULL))) + (NU64)(((NU64) ((NI)(((NU8)(s->data[i])) - ((NI) 48))))));
5575 			i += ((NI) 1);
5576 			{
5577 				while (1) {
5578 					NIM_BOOL T77_;
5579 					T77_ = (NIM_BOOL)0;
5580 					T77_ = (i < (s ? s->Sup.len : 0));
5581 					if (!(T77_)) goto LA78_;
5582 					T77_ = ((NU8)(s->data[i]) == (NU8)(95));
5583 					LA78_: ;
5584 					if (!T77_) goto LA76;
5585 					i += ((NI) 1);
5586 				} LA76: ;
5587 			}
5588 		} LA72: ;
5589 	}
5590 	{
5591 		NIM_BOOL T81_;
5592 		T81_ = (NIM_BOOL)0;
5593 		T81_ = (i < (s ? s->Sup.len : 0));
5594 		if (!(T81_)) goto LA82_;
5595 		T81_ = ((NU8)(s->data[i]) == (NU8)(46));
5596 		LA82_: ;
5597 		if (!T81_) goto LA83_;
5598 		i += ((NI) 1);
5599 		{
5600 			if (!(kdigits <= ((NI) 0))) goto LA87_;
5601 			{
5602 				while (1) {
5603 					NIM_BOOL T91_;
5604 					T91_ = (NIM_BOOL)0;
5605 					T91_ = (i < (s ? s->Sup.len : 0));
5606 					if (!(T91_)) goto LA92_;
5607 					T91_ = ((NU8)(s->data[i]) == (NU8)(48));
5608 					LA92_: ;
5609 					if (!T91_) goto LA90;
5610 					fracExponent += ((NI) 1);
5611 					i += ((NI) 1);
5612 					{
5613 						while (1) {
5614 							NIM_BOOL T95_;
5615 							T95_ = (NIM_BOOL)0;
5616 							T95_ = (i < (s ? s->Sup.len : 0));
5617 							if (!(T95_)) goto LA96_;
5618 							T95_ = ((NU8)(s->data[i]) == (NU8)(95));
5619 							LA96_: ;
5620 							if (!T95_) goto LA94;
5621 							i += ((NI) 1);
5622 						} LA94: ;
5623 					}
5624 				} LA90: ;
5625 			}
5626 		}
5627 		LA87_: ;
5628 		{
5629 			NIM_BOOL T99_;
5630 			NIM_BOOL T100_;
5631 			T99_ = (NIM_BOOL)0;
5632 			T100_ = (NIM_BOOL)0;
5633 			T100_ = (firstDigit == ((NI) -1));
5634 			if (!(T100_)) goto LA101_;
5635 			T100_ = (i < (s ? s->Sup.len : 0));
5636 			LA101_: ;
5637 			T99_ = T100_;
5638 			if (!(T99_)) goto LA102_;
5639 			T99_ = (((NU8)(s->data[i])) >= ((NU8)(48)) && ((NU8)(s->data[i])) <= ((NU8)(57)));
5640 			LA102_: ;
5641 			if (!T99_) goto LA103_;
5642 			firstDigit = (NI)(((NU8)(s->data[i])) - ((NI) 48));
5643 		}
5644 		LA103_: ;
5645 		{
5646 			while (1) {
5647 				NIM_BOOL T107_;
5648 				T107_ = (NIM_BOOL)0;
5649 				T107_ = (i < (s ? s->Sup.len : 0));
5650 				if (!(T107_)) goto LA108_;
5651 				T107_ = (((NU8)(s->data[i])) >= ((NU8)(48)) && ((NU8)(s->data[i])) <= ((NU8)(57)));
5652 				LA108_: ;
5653 				if (!T107_) goto LA106;
5654 				fdigits += ((NI) 1);
5655 				fracExponent += ((NI) 1);
5656 				integer = (NU64)((NU64)((NU64)((NU64)(integer) * (NU64)(10ULL))) + (NU64)(((NU64) ((NI)(((NU8)(s->data[i])) - ((NI) 48))))));
5657 				i += ((NI) 1);
5658 				{
5659 					while (1) {
5660 						NIM_BOOL T111_;
5661 						T111_ = (NIM_BOOL)0;
5662 						T111_ = (i < (s ? s->Sup.len : 0));
5663 						if (!(T111_)) goto LA112_;
5664 						T111_ = ((NU8)(s->data[i]) == (NU8)(95));
5665 						LA112_: ;
5666 						if (!T111_) goto LA110;
5667 						i += ((NI) 1);
5668 					} LA110: ;
5669 				}
5670 			} LA106: ;
5671 		}
5672 	}
5673 	LA83_: ;
5674 	{
5675 		NIM_BOOL T115_;
5676 		NIM_BOOL T117_;
5677 		NIM_BOOL T119_;
5678 		T115_ = (NIM_BOOL)0;
5679 		T115_ = ((NI)(kdigits + fdigits) <= ((NI) 0));
5680 		if (!(T115_)) goto LA116_;
5681 		T117_ = (NIM_BOOL)0;
5682 		T117_ = (i == start);
5683 		if (T117_) goto LA118_;
5684 		T119_ = (NIM_BOOL)0;
5685 		T119_ = (i == (NI)(start + ((NI) 1)));
5686 		if (!(T119_)) goto LA120_;
5687 		T119_ = hasSign;
5688 		LA120_: ;
5689 		T117_ = T119_;
5690 		LA118_: ;
5691 		T115_ = T117_;
5692 		LA116_: ;
5693 		if (!T115_) goto LA121_;
5694 		result = ((NI) 0);
5695 		goto BeforeRet_;
5696 	}
5697 	LA121_: ;
5698 	{
5699 		NIM_BOOL T125_;
5700 		T125_ = (NIM_BOOL)0;
5701 		T125_ = ((NI)(i + ((NI) 1)) < (s ? s->Sup.len : 0));
5702 		if (!(T125_)) goto LA126_;
5703 		T125_ = (((NU8)(s->data[i])) == ((NU8)(101)) || ((NU8)(s->data[i])) == ((NU8)(69)));
5704 		LA126_: ;
5705 		if (!T125_) goto LA127_;
5706 		i += ((NI) 1);
5707 		{
5708 			NIM_BOOL T131_;
5709 			T131_ = (NIM_BOOL)0;
5710 			T131_ = ((NU8)(s->data[i]) == (NU8)(43));
5711 			if (T131_) goto LA132_;
5712 			T131_ = ((NU8)(s->data[i]) == (NU8)(45));
5713 			LA132_: ;
5714 			if (!T131_) goto LA133_;
5715 			{
5716 				if (!((NU8)(s->data[i]) == (NU8)(45))) goto LA137_;
5717 				expSign = ((NI) -1);
5718 			}
5719 			LA137_: ;
5720 			i += ((NI) 1);
5721 		}
5722 		LA133_: ;
5723 		{
5724 			if (!!((((NU8)(s->data[i])) >= ((NU8)(48)) && ((NU8)(s->data[i])) <= ((NU8)(57))))) goto LA141_;
5725 			result = ((NI) 0);
5726 			goto BeforeRet_;
5727 		}
5728 		LA141_: ;
5729 		{
5730 			while (1) {
5731 				NIM_BOOL T145_;
5732 				T145_ = (NIM_BOOL)0;
5733 				T145_ = (i < (s ? s->Sup.len : 0));
5734 				if (!(T145_)) goto LA146_;
5735 				T145_ = (((NU8)(s->data[i])) >= ((NU8)(48)) && ((NU8)(s->data[i])) <= ((NU8)(57)));
5736 				LA146_: ;
5737 				if (!T145_) goto LA144;
5738 				exponent = (NI)((NI)(exponent * ((NI) 10)) + (NI)(((NU8)(s->data[i])) - ((NI) 48)));
5739 				i += ((NI) 1);
5740 				{
5741 					while (1) {
5742 						NIM_BOOL T149_;
5743 						T149_ = (NIM_BOOL)0;
5744 						T149_ = (i < (s ? s->Sup.len : 0));
5745 						if (!(T149_)) goto LA150_;
5746 						T149_ = ((NU8)(s->data[i]) == (NU8)(95));
5747 						LA150_: ;
5748 						if (!T149_) goto LA148;
5749 						i += ((NI) 1);
5750 					} LA148: ;
5751 				}
5752 			} LA144: ;
5753 		}
5754 	}
5755 	LA127_: ;
5756 	realExponent = (NI)((NI)(expSign * exponent) - fracExponent);
5757 	expNegative = (realExponent < ((NI) 0));
5758 	absExponent = (realExponent > 0? (realExponent) : -(realExponent));
5759 	{
5760 		if (!(((NI) 999) < absExponent)) goto LA153_;
5761 		{
5762 			if (!expNegative) goto LA157_;
5763 			(*number) = ((NF)(0.0) * (NF)(sign));
5764 		}
5765 		goto LA155_;
5766 		LA157_: ;
5767 		{
5768 			(*number) = ((NF)(INF) * (NF)(sign));
5769 		}
5770 		LA155_: ;
5771 		result = (NI)(i - start);
5772 		goto BeforeRet_;
5773 	}
5774 	LA153_: ;
5775 	digits = (NI)(kdigits + fdigits);
5776 	{
5777 		NIM_BOOL T162_;
5778 		NIM_BOOL T164_;
5779 		NI slop;
5780 		T162_ = (NIM_BOOL)0;
5781 		T162_ = (digits <= ((NI) 15));
5782 		if (T162_) goto LA163_;
5783 		T164_ = (NIM_BOOL)0;
5784 		T164_ = (digits <= ((NI) 16));
5785 		if (!(T164_)) goto LA165_;
5786 		T164_ = (firstDigit <= ((NI) 8));
5787 		LA165_: ;
5788 		T162_ = T164_;
5789 		LA163_: ;
5790 		if (!T162_) goto LA166_;
5791 		{
5792 			if (!(absExponent <= ((NI) 22))) goto LA170_;
5793 			{
5794 				if (!expNegative) goto LA174_;
5795 				(*number) = ((NF)(((NF)(sign) * (NF)(((NF) (integer))))) / (NF)(powtens__system_6124[(absExponent)- 0]));
5796 			}
5797 			goto LA172_;
5798 			LA174_: ;
5799 			{
5800 				(*number) = ((NF)(((NF)(sign) * (NF)(((NF) (integer))))) * (NF)(powtens__system_6124[(absExponent)- 0]));
5801 			}
5802 			LA172_: ;
5803 			result = (NI)(i - start);
5804 			goto BeforeRet_;
5805 		}
5806 		LA170_: ;
5807 		slop = (NI)((NI)(((NI) 15) - kdigits) - fdigits);
5808 		{
5809 			NIM_BOOL T179_;
5810 			T179_ = (NIM_BOOL)0;
5811 			T179_ = (absExponent <= (NI)(((NI) 22) + slop));
5812 			if (!(T179_)) goto LA180_;
5813 			T179_ = !(expNegative);
5814 			LA180_: ;
5815 			if (!T179_) goto LA181_;
5816 			(*number) = ((NF)(((NF)(((NF)(sign) * (NF)(((NF) (integer))))) * (NF)(powtens__system_6124[(slop)- 0]))) * (NF)(powtens__system_6124[((NI)(absExponent - slop))- 0]));
5817 			result = (NI)(i - start);
5818 			goto BeforeRet_;
5819 		}
5820 		LA181_: ;
5821 	}
5822 	LA166_: ;
5823 	nimZeroMem((void*)t, sizeof(tyArray__PGLh8drTnaWr3s1qUUSq2Q));
5824 	ti = ((NI) 0);
5825 	maxlen = ((NI) 494);
5826 	endPos = i;
5827 	result = (NI)(endPos - start);
5828 	i = start;
5829 	{
5830 		NIM_BOOL T185_;
5831 		T185_ = (NIM_BOOL)0;
5832 		T185_ = (i < endPos);
5833 		if (!(T185_)) goto LA186_;
5834 		T185_ = ((NU8)(s->data[i]) == (NU8)(46));
5835 		LA186_: ;
5836 		if (!T185_) goto LA187_;
5837 		i += ((NI) 1);
5838 	}
5839 	LA187_: ;
5840 	{
5841 		while (1) {
5842 			NIM_BOOL T191_;
5843 			T191_ = (NIM_BOOL)0;
5844 			T191_ = (i < endPos);
5845 			if (!(T191_)) goto LA192_;
5846 			T191_ = (((NU8)(s->data[i])) >= ((NU8)(48)) && ((NU8)(s->data[i])) <= ((NU8)(57)) || ((NU8)(s->data[i])) == ((NU8)(43)) || ((NU8)(s->data[i])) == ((NU8)(45)));
5847 			LA192_: ;
5848 			if (!T191_) goto LA190;
5849 			{
5850 				if (!(ti < maxlen)) goto LA195_;
5851 				t[(ti)- 0] = s->data[i];
5852 				ti += ((NI) 1);
5853 			}
5854 			LA195_: ;
5855 			i += ((NI) 1);
5856 			{
5857 				while (1) {
5858 					NIM_BOOL T199_;
5859 					T199_ = (NIM_BOOL)0;
5860 					T199_ = (i < endPos);
5861 					if (!(T199_)) goto LA200_;
5862 					T199_ = (((NU8)(s->data[i])) == ((NU8)(46)) || ((NU8)(s->data[i])) == ((NU8)(95)));
5863 					LA200_: ;
5864 					if (!T199_) goto LA198;
5865 					i += ((NI) 1);
5866 				} LA198: ;
5867 			}
5868 		} LA190: ;
5869 	}
5870 	t[(ti)- 0] = 69;
5871 	ti += ((NI) 1);
5872 	{
5873 		if (!expNegative) goto LA203_;
5874 		t[(ti)- 0] = 45;
5875 	}
5876 	goto LA201_;
5877 	LA203_: ;
5878 	{
5879 		t[(ti)- 0] = 43;
5880 	}
5881 	LA201_: ;
5882 	ti += ((NI) 4);
5883 	t[((NI)(ti - ((NI) 1)))- 0] = ((NIM_CHAR) ((NI)(((NI) 48) + (NI)(absExponent % ((NI) 10)))));
5884 	absExponent = (NI)(absExponent / ((NI) 10));
5885 	t[((NI)(ti - ((NI) 2)))- 0] = ((NIM_CHAR) ((NI)(((NI) 48) + (NI)(absExponent % ((NI) 10)))));
5886 	absExponent = (NI)(absExponent / ((NI) 10));
5887 	t[((NI)(ti - ((NI) 3)))- 0] = ((NIM_CHAR) ((NI)(((NI) 48) + (NI)(absExponent % ((NI) 10)))));
5888 	(*number) = strtod(((NCSTRING) (t)), ((NCSTRING*) NIM_NIL));
5889 	}BeforeRet_: ;
5890 	return result;
5891 }
N_INLINE(void,addFloat__system_3122)5892 static N_INLINE(void, addFloat__system_3122)(NimStringDesc** result, NF x) {
5893 	addFloatRoundtrip__system_3127(result, x);
5894 }
N_NIMCALL(NimStringDesc *,dollar___system_3118)5895 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___system_3118)(NF x) {
5896 	NimStringDesc* result;
5897 	result = NIM_NIL;
5898 	addFloat__system_3122((&result), x);
5899 	return result;
5900 }
N_NIMCALL(void,objectInitAux__system_6492)5901 N_LIB_PRIVATE N_NIMCALL(void, objectInitAux__system_6492)(void* dest, TNimNode* n) {
5902 	NI d;
5903 	d = ((NI) (ptrdiff_t) (dest));
5904 	switch ((*n).kind) {
5905 	case ((tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ) 0):
5906 	{
5907 	}
5908 	break;
5909 	case ((tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ) 1):
5910 	{
5911 		NI T3_;
5912 		T3_ = (NI)0;
5913 		T3_ = pluspercent___system_696(d, (*n).offset);
5914 		objectInit(((void*) (T3_)), (*n).typ);
5915 	}
5916 	break;
5917 	case ((tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ) 2):
5918 	{
5919 		{
5920 			NI i;
5921 			NI colontmp_;
5922 			NI res;
5923 			i = (NI)0;
5924 			colontmp_ = (NI)0;
5925 			colontmp_ = (NI)((*n).len - ((NI) 1));
5926 			res = ((NI) 0);
5927 			{
5928 				while (1) {
5929 					if (!(res <= colontmp_)) goto LA7;
5930 					i = res;
5931 					objectInitAux__system_6492(dest, (*n).sons[(i)- 0]);
5932 					res += ((NI) 1);
5933 				} LA7: ;
5934 			}
5935 		}
5936 	}
5937 	break;
5938 	case ((tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ) 3):
5939 	{
5940 		TNimNode* m;
5941 		m = selectBranch__system_3645(dest, n);
5942 		{
5943 			if (!!((m == ((TNimNode*) NIM_NIL)))) goto LA11_;
5944 			objectInitAux__system_6492(dest, m);
5945 		}
5946 		LA11_: ;
5947 	}
5948 	break;
5949 	}
5950 }
N_NIMCALL(void,objectInit)5951 N_LIB_PRIVATE N_NIMCALL(void, objectInit)(void* dest, TNimType* typ) {
5952 	NI d;
5953 	d = ((NI) (ptrdiff_t) (dest));
5954 	switch ((*typ).kind) {
5955 	case ((tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A) 17):
5956 	{
5957 		TNimType** pint;
5958 		pint = ((TNimType**) (dest));
5959 		(*pint) = typ;
5960 		objectInitAux__system_6492(dest, (*typ).node);
5961 	}
5962 	break;
5963 	case ((tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A) 18):
5964 	{
5965 		objectInitAux__system_6492(dest, (*typ).node);
5966 	}
5967 	break;
5968 	case ((tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A) 16):
5969 	case ((tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A) 4):
5970 	{
5971 		{
5972 			NI i;
5973 			NI colontmp_;
5974 			NI res;
5975 			i = (NI)0;
5976 			colontmp_ = (NI)0;
5977 			colontmp_ = (NI)((NI)((*typ).size / (*(*typ).base).size) - ((NI) 1));
5978 			res = ((NI) 0);
5979 			{
5980 				while (1) {
5981 					NI T7_;
5982 					if (!(res <= colontmp_)) goto LA6;
5983 					i = res;
5984 					T7_ = (NI)0;
5985 					T7_ = pluspercent___system_696(d, (NI)(i * (*(*typ).base).size));
5986 					objectInit(((void*) (T7_)), (*typ).base);
5987 					res += ((NI) 1);
5988 				} LA6: ;
5989 			}
5990 		}
5991 	}
5992 	break;
5993 	default:
5994 	{
5995 	}
5996 	break;
5997 	}
5998 }
N_NIMCALL(void,genericShallowAssign)5999 N_LIB_PRIVATE N_NIMCALL(void, genericShallowAssign)(void* dest, void* src, TNimType* mt) {
6000 	genericAssignAux__system_6377(dest, src, mt, NIM_TRUE);
6001 }
N_NIMCALL(NI,cmp__system_7422)6002 N_LIB_PRIVATE N_NIMCALL(NI, cmp__system_7422)(NI x, NI y) {
6003 	NI result;
6004 {	result = (NI)0;
6005 	{
6006 		if (!(x == y)) goto LA3_;
6007 		result = ((NI) 0);
6008 		goto BeforeRet_;
6009 	}
6010 	LA3_: ;
6011 	{
6012 		if (!(x < y)) goto LA7_;
6013 		result = ((NI) -1);
6014 		goto BeforeRet_;
6015 	}
6016 	LA7_: ;
6017 	result = ((NI) 1);
6018 	goto BeforeRet_;
6019 	}BeforeRet_: ;
6020 	return result;
6021 }
N_NIMCALL(void,Marker_tyRef__9ai78kkwqt3gikTN9cpHKUVg)6022 static N_NIMCALL(void, Marker_tyRef__9ai78kkwqt3gikTN9cpHKUVg)(void* p, NI op) {
6023 	NI* a;
6024 	a = (NI*)p;
6025 }
N_NIMCALL(NCSTRING *,allocCStringArray__system_2469)6026 N_LIB_PRIVATE N_NIMCALL(NCSTRING*, allocCStringArray__system_2469)(NimStringDesc** a, NI aLen_0) {
6027 	NCSTRING* result;
6028 	void* T1_;
6029 	NimStringDesc** x;
6030 	result = (NCSTRING*)0;
6031 	T1_ = (void*)0;
6032 	T1_ = alloc0Impl__system_1745(((NI) ((NI)((NI)(aLen_0 + ((NI) 1)) * ((NI) 4)))));
6033 	result = ((NCSTRING*) (T1_));
6034 	x = ((NimStringDesc**) (a));
6035 	{
6036 		NI i;
6037 		NI colontmp_;
6038 		NI res;
6039 		i = (NI)0;
6040 		colontmp_ = (NI)0;
6041 		colontmp_ = (aLen_0-1);
6042 		res = ((NI) 0);
6043 		{
6044 			while (1) {
6045 				void* T5_;
6046 				if (!(res <= colontmp_)) goto LA4;
6047 				i = res;
6048 				T5_ = (void*)0;
6049 				T5_ = alloc0Impl__system_1745(((NI) ((NI)((x[i] ? x[i]->Sup.len : 0) + ((NI) 1)))));
6050 				result[i] = ((NCSTRING) (T5_));
6051 				copyMem__system_1727(((void*) (result[i])), ((void*) ((&x[i]->data[((NI) 0)]))), ((NI) ((x[i] ? x[i]->Sup.len : 0))));
6052 				res += ((NI) 1);
6053 			} LA4: ;
6054 		}
6055 	}
6056 	return result;
6057 }
N_NIMCALL(void,deallocCStringArray__system_2503)6058 N_LIB_PRIVATE N_NIMCALL(void, deallocCStringArray__system_2503)(NCSTRING* a) {
6059 	NI i;
6060 	i = ((NI) 0);
6061 	{
6062 		while (1) {
6063 			if (!!((((void*) (a[i])) == NIM_NIL))) goto LA2;
6064 			dealloc(((void*) (a[i])));
6065 			i += ((NI) 1);
6066 		} LA2: ;
6067 	}
6068 	dealloc(((void*) (a)));
6069 }
N_NIMCALL(NimStringDesc *,nimBoolToStr)6070 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nimBoolToStr)(NIM_BOOL x) {
6071 	NimStringDesc* result;
6072 {	result = NIM_NIL;
6073 	{
6074 		if (!x) goto LA3_;
6075 		result = copyString(((NimStringDesc*) &TM__Q5wkpxktOdTGvlSRo9bzt9aw_23));
6076 	}
6077 	goto LA1_;
6078 	LA3_: ;
6079 	{
6080 		result = copyString(((NimStringDesc*) &TM__Q5wkpxktOdTGvlSRo9bzt9aw_24));
6081 	}
6082 	LA1_: ;
6083 	goto BeforeRet_;
6084 	}BeforeRet_: ;
6085 	return result;
6086 }
N_NIMCALL(NI,toInt__system_1708)6087 N_LIB_PRIVATE N_NIMCALL(NI, toInt__system_1708)(NF f) {
6088 	NI result;
6089 	result = (NI)0;
6090 	{
6091 		if (!(0.0 <= f)) goto LA3_;
6092 		result = ((NI) (((NF)(f) + (NF)(0.5))));
6093 	}
6094 	goto LA1_;
6095 	LA3_: ;
6096 	{
6097 		result = ((NI) (((NF)(f) - (NF)(0.5))));
6098 	}
6099 	LA1_: ;
6100 	return result;
6101 }
N_NOINLINE(NIM_BOOL,isObjSlowPath__system_3313)6102 N_LIB_PRIVATE N_NOINLINE(NIM_BOOL, isObjSlowPath__system_3313)(TNimType* obj, TNimType* subclass, TNimType** cache) {
6103 	NIM_BOOL result;
6104 	TNimType* x;
6105 {	result = (NIM_BOOL)0;
6106 	x = (*obj).base;
6107 	{
6108 		while (1) {
6109 			if (!!((x == subclass))) goto LA2;
6110 			{
6111 				if (!(x == ((TNimType*) NIM_NIL))) goto LA5_;
6112 				cache[(((NI) 0))- 0] = obj;
6113 				result = NIM_FALSE;
6114 				goto BeforeRet_;
6115 			}
6116 			LA5_: ;
6117 			x = (*x).base;
6118 		} LA2: ;
6119 	}
6120 	cache[(((NI) 1))- 0] = obj;
6121 	result = NIM_TRUE;
6122 	goto BeforeRet_;
6123 	}BeforeRet_: ;
6124 	return result;
6125 }
N_NIMCALL(void,addFloatRoundtrip__system_6806)6126 N_LIB_PRIVATE N_NIMCALL(void, addFloatRoundtrip__system_6806)(NimStringDesc** result, NF32 x) {
6127 	tyArray__eVNFTutn6un5gcq48fQLdg buffer;
6128 	NI n;
6129 	n = writeFloatToBufferRoundtrip__systemZformatfloat_44(buffer, x);
6130 	addCstringN__systemZformatfloat_5(result, ((NCSTRING) ((&buffer[(((NI) 0))- 0]))), n);
6131 }
N_NIMCALL(void,insert__system_7440)6132 N_LIB_PRIVATE N_NIMCALL(void, insert__system_7440)(NimStringDesc** x, NimStringDesc* item, NI i) {
6133 	NI xl;
6134 	NI j;
6135 	xl = ((*x) ? (*x)->Sup.len : 0);
6136 	unsureAsgnRef((void**) (&(*x)), setLengthStr((*x), ((NI) ((NI)(xl + (item ? item->Sup.len : 0))))));
6137 	j = (NI)(xl - ((NI) 1));
6138 	{
6139 		while (1) {
6140 			if (!(((NI) (i)) <= j)) goto LA2;
6141 			(*x)->data[(NI)(j + (item ? item->Sup.len : 0))] = (*x)->data[j];
6142 			j -= ((NI) 1);
6143 		} LA2: ;
6144 	}
6145 	j = ((NI) 0);
6146 	{
6147 		while (1) {
6148 			if (!(j < (item ? item->Sup.len : 0))) goto LA4;
6149 			(*x)->data[(NI)(j + ((NI) (i)))] = item->data[j];
6150 			j += ((NI) 1);
6151 		} LA4: ;
6152 	}
6153 }
N_NIMCALL(NimStringDesc *,getStackTrace__system_2521)6154 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getStackTrace__system_2521)(Exception* e) {
6155 	NimStringDesc* result;
6156 	result = NIM_NIL;
6157 	{
6158 		if (!!((e == 0))) goto LA3_;
6159 		result = dollar___system_2723((*e).trace);
6160 	}
6161 	goto LA1_;
6162 	LA3_: ;
6163 	{
6164 		result = ((NimStringDesc*) NIM_NIL);
6165 	}
6166 	LA1_: ;
6167 	return result;
6168 }
N_NIMCALL(NI,getMaxMem__system_3973)6169 N_LIB_PRIVATE N_NIMCALL(NI, getMaxMem__system_3973)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a) {
6170 	NI result;
6171 	result = (NI)0;
6172 	result = (((*a).currMem >= (*a).maxMem) ? (*a).currMem : (*a).maxMem);
6173 	return result;
6174 }
N_NIMCALL(NI,getMaxMem__system_5234)6175 N_LIB_PRIVATE N_NIMCALL(NI, getMaxMem__system_5234)(void) {
6176 	NI result;
6177 	result = (NI)0;
6178 	result = getMaxMem__system_3973((&gch__system_5209.region));
6179 	return result;
6180 }
N_NIMCALL(NI,getTotalMem__system_1938)6181 N_LIB_PRIVATE N_NIMCALL(NI, getTotalMem__system_1938)(void) {
6182 	NI result;
6183 	result = (NI)0;
6184 	result = gch__system_5209.region.currMem;
6185 	return result;
6186 }
N_NIMCALL(NimStringDesc *,GC_getStatistics__system_2268)6187 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, GC_getStatistics__system_2268)(void) {
6188 	NimStringDesc* result;
6189 	NimStringDesc* T1_;
6190 	NI T2_;
6191 	NimStringDesc* T3_;
6192 	NI T4_;
6193 	NimStringDesc* T5_;
6194 	NimStringDesc* T6_;
6195 	NimStringDesc* T7_;
6196 	NimStringDesc* T8_;
6197 	NimStringDesc* T9_;
6198 	NimStringDesc* T10_;
6199 	NimStringDesc* T11_;
6200 	NimStringDesc* T12_;
6201 	NimStringDesc* T13_;
6202 	NimStringDesc* T14_;
6203 	result = NIM_NIL;
6204 	T1_ = NIM_NIL;
6205 	T2_ = (NI)0;
6206 	T2_ = getTotalMem__system_1938();
6207 	T3_ = NIM_NIL;
6208 	T3_ = dollar___systemZdollars_3(T2_);
6209 	T4_ = (NI)0;
6210 	T4_ = getOccupiedMem__system_1936();
6211 	T5_ = NIM_NIL;
6212 	T5_ = dollar___systemZdollars_3(T4_);
6213 	T6_ = NIM_NIL;
6214 	T6_ = dollar___systemZdollars_3(gch__system_5209.stat.stackScans);
6215 	T7_ = NIM_NIL;
6216 	T7_ = dollar___systemZdollars_3(gch__system_5209.stat.maxStackCells);
6217 	T8_ = NIM_NIL;
6218 	T8_ = dollar___systemZdollars_3(gch__system_5209.stat.cycleCollections);
6219 	T9_ = NIM_NIL;
6220 	T9_ = dollar___systemZdollars_3(gch__system_5209.stat.maxThreshold);
6221 	T10_ = NIM_NIL;
6222 	T10_ = dollar___systemZdollars_3(gch__system_5209.zct.cap);
6223 	T11_ = NIM_NIL;
6224 	T11_ = dollar___systemZdollars_3(gch__system_5209.stat.cycleTableSize);
6225 	T12_ = NIM_NIL;
6226 	T12_ = dollar___systemZdollars_6((NI64)(gch__system_5209.stat.maxPause / IL64(1000000)));
6227 	T1_ = rawNewString((T3_ ? T3_->Sup.len : 0) + (T5_ ? T5_->Sup.len : 0) + (T6_ ? T6_->Sup.len : 0) + (T7_ ? T7_->Sup.len : 0) + (T8_ ? T8_->Sup.len : 0) + (T9_ ? T9_->Sup.len : 0) + (T10_ ? T10_->Sup.len : 0) + (T11_ ? T11_->Sup.len : 0) + (T12_ ? T12_->Sup.len : 0) + 202);
6228 appendString(T1_, ((NimStringDesc*) &TM__Q5wkpxktOdTGvlSRo9bzt9aw_25));
6229 appendString(T1_, T3_);
6230 appendString(T1_, ((NimStringDesc*) &TM__Q5wkpxktOdTGvlSRo9bzt9aw_26));
6231 appendString(T1_, T5_);
6232 appendString(T1_, ((NimStringDesc*) &TM__Q5wkpxktOdTGvlSRo9bzt9aw_27));
6233 appendString(T1_, T6_);
6234 appendString(T1_, ((NimStringDesc*) &TM__Q5wkpxktOdTGvlSRo9bzt9aw_28));
6235 appendString(T1_, T7_);
6236 appendString(T1_, ((NimStringDesc*) &TM__Q5wkpxktOdTGvlSRo9bzt9aw_29));
6237 appendString(T1_, T8_);
6238 appendString(T1_, ((NimStringDesc*) &TM__Q5wkpxktOdTGvlSRo9bzt9aw_30));
6239 appendString(T1_, T9_);
6240 appendString(T1_, ((NimStringDesc*) &TM__Q5wkpxktOdTGvlSRo9bzt9aw_31));
6241 appendString(T1_, T10_);
6242 appendString(T1_, ((NimStringDesc*) &TM__Q5wkpxktOdTGvlSRo9bzt9aw_32));
6243 appendString(T1_, T11_);
6244 appendString(T1_, ((NimStringDesc*) &TM__Q5wkpxktOdTGvlSRo9bzt9aw_33));
6245 appendString(T1_, T12_);
6246 appendString(T1_, ((NimStringDesc*) &TM__Q5wkpxktOdTGvlSRo9bzt9aw_14));
6247 	result = T1_;
6248 	T13_ = NIM_NIL;
6249 	T14_ = NIM_NIL;
6250 	T14_ = dollar___systemZdollars_3(gch__system_5209.stat.maxStackSize);
6251 	T13_ = rawNewString((T14_ ? T14_->Sup.len : 0) + 22);
6252 appendString(T13_, ((NimStringDesc*) &TM__Q5wkpxktOdTGvlSRo9bzt9aw_34));
6253 appendString(T13_, T14_);
6254 appendString(T13_, ((NimStringDesc*) &TM__Q5wkpxktOdTGvlSRo9bzt9aw_14));
6255 	result = resizeString(result, (T13_ ? T13_->Sup.len : 0) + 0);
6256 appendString(result, T13_);
6257 	return result;
6258 }
N_INLINE(void,initStackBottomWith)6259 static N_INLINE(void, initStackBottomWith)(void* locals) {
6260 	nimGC_setStackBottom(locals);
6261 }
N_NIMCALL(void,systemInit000)6262 N_LIB_PRIVATE N_NIMCALL(void, systemInit000)(void) {
6263 {
6264 	TFrame FR_; FR_.len = 0;
6265 
6266 	nimRegisterThreadLocalMarker(TM__Q5wkpxktOdTGvlSRo9bzt9aw_4);
6267 
6268 }/* preInitProc end */
6269 {
6270 	initStackBottom();
6271 	initGC__system_2398();
6272 	registerSignalHandler__system_2992();
6273 }
6274 }
6275 
N_NIMCALL(void,systemDatInit000)6276 N_LIB_PRIVATE N_NIMCALL(void, systemDatInit000)(void) {
6277 static TNimNode* TM__Q5wkpxktOdTGvlSRo9bzt9aw_2_5[5];
6278 static TNimNode* TM__Q5wkpxktOdTGvlSRo9bzt9aw_3_3[3];
6279 static TNimNode TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[26];
6280 NTIrootobj__ytyiCJqK439aF9cIibuRVpAg_.size = sizeof(RootObj);
6281 NTIrootobj__ytyiCJqK439aF9cIibuRVpAg_.align = NIM_ALIGNOF(RootObj);
6282 NTIrootobj__ytyiCJqK439aF9cIibuRVpAg_.kind = 17;
6283 NTIrootobj__ytyiCJqK439aF9cIibuRVpAg_.base = 0;
6284 NTIrootobj__ytyiCJqK439aF9cIibuRVpAg_.flags = 1;
6285 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[0].len = 0; TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[0].kind = 2;
6286 NTIrootobj__ytyiCJqK439aF9cIibuRVpAg_.node = &TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[0];
6287 NTIexception__XEycrCsme5C8CVWAYEcdBQ_.size = sizeof(Exception);
6288 NTIexception__XEycrCsme5C8CVWAYEcdBQ_.align = NIM_ALIGNOF(Exception);
6289 NTIexception__XEycrCsme5C8CVWAYEcdBQ_.kind = 17;
6290 NTIexception__XEycrCsme5C8CVWAYEcdBQ_.base = (&NTIrootobj__ytyiCJqK439aF9cIibuRVpAg_);
6291 TM__Q5wkpxktOdTGvlSRo9bzt9aw_2_5[0] = &TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[2];
6292 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[2].kind = 1;
6293 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[2].offset = offsetof(Exception, parent);
6294 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[2].typ = (&NTIrefexception__vU9aO9cTqOMn6CBzhV8rX7Sw_);
6295 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[2].name = "parent";
6296 TM__Q5wkpxktOdTGvlSRo9bzt9aw_2_5[1] = &TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[3];
6297 NTIcstring__S9agCYBinaYZnGWcjTdxclg_.size = sizeof(NCSTRING);
6298 NTIcstring__S9agCYBinaYZnGWcjTdxclg_.align = NIM_ALIGNOF(NCSTRING);
6299 NTIcstring__S9agCYBinaYZnGWcjTdxclg_.kind = 29;
6300 NTIcstring__S9agCYBinaYZnGWcjTdxclg_.base = 0;
6301 NTIcstring__S9agCYBinaYZnGWcjTdxclg_.flags = 3;
6302 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[3].kind = 1;
6303 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[3].offset = offsetof(Exception, name);
6304 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[3].typ = (&NTIcstring__S9agCYBinaYZnGWcjTdxclg_);
6305 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[3].name = "name";
6306 TM__Q5wkpxktOdTGvlSRo9bzt9aw_2_5[2] = &TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[4];
6307 NTIstring__77mFvmsOLKik79ci2hXkHEg_.size = sizeof(NimStringDesc*);
6308 NTIstring__77mFvmsOLKik79ci2hXkHEg_.align = NIM_ALIGNOF(NimStringDesc*);
6309 NTIstring__77mFvmsOLKik79ci2hXkHEg_.kind = 28;
6310 NTIstring__77mFvmsOLKik79ci2hXkHEg_.base = 0;
6311 NTIstring__77mFvmsOLKik79ci2hXkHEg_.flags = 2;
6312 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[4].kind = 1;
6313 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[4].offset = offsetof(Exception, message);
6314 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[4].typ = (&NTIstring__77mFvmsOLKik79ci2hXkHEg_);
6315 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[4].name = "msg";
6316 TM__Q5wkpxktOdTGvlSRo9bzt9aw_2_5[3] = &TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[5];
6317 NTIstacktraceentry__oLyohQ7O2XOvGnflOss8EA_.size = sizeof(tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA);
6318 NTIstacktraceentry__oLyohQ7O2XOvGnflOss8EA_.align = NIM_ALIGNOF(tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA);
6319 NTIstacktraceentry__oLyohQ7O2XOvGnflOss8EA_.kind = 18;
6320 NTIstacktraceentry__oLyohQ7O2XOvGnflOss8EA_.base = 0;
6321 NTIstacktraceentry__oLyohQ7O2XOvGnflOss8EA_.flags = 1;
6322 TM__Q5wkpxktOdTGvlSRo9bzt9aw_3_3[0] = &TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[7];
6323 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[7].kind = 1;
6324 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[7].offset = offsetof(tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA, procname);
6325 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[7].typ = (&NTIcstring__S9agCYBinaYZnGWcjTdxclg_);
6326 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[7].name = "procname";
6327 TM__Q5wkpxktOdTGvlSRo9bzt9aw_3_3[1] = &TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[8];
6328 NTIint__rR5Bzr1D5krxoo1NcNyeMA_.size = sizeof(NI);
6329 NTIint__rR5Bzr1D5krxoo1NcNyeMA_.align = NIM_ALIGNOF(NI);
6330 NTIint__rR5Bzr1D5krxoo1NcNyeMA_.kind = 31;
6331 NTIint__rR5Bzr1D5krxoo1NcNyeMA_.base = 0;
6332 NTIint__rR5Bzr1D5krxoo1NcNyeMA_.flags = 3;
6333 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[8].kind = 1;
6334 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[8].offset = offsetof(tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA, line);
6335 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[8].typ = (&NTIint__rR5Bzr1D5krxoo1NcNyeMA_);
6336 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[8].name = "line";
6337 TM__Q5wkpxktOdTGvlSRo9bzt9aw_3_3[2] = &TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[9];
6338 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[9].kind = 1;
6339 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[9].offset = offsetof(tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA, filename);
6340 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[9].typ = (&NTIcstring__S9agCYBinaYZnGWcjTdxclg_);
6341 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[9].name = "filename";
6342 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[6].len = 3; TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[6].kind = 2; TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[6].sons = &TM__Q5wkpxktOdTGvlSRo9bzt9aw_3_3[0];
6343 NTIstacktraceentry__oLyohQ7O2XOvGnflOss8EA_.node = &TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[6];
6344 NTIseqLstacktraceentryT__uB9b75OUPRENsBAu4AnoePA_.size = sizeof(tySequence__uB9b75OUPRENsBAu4AnoePA*);
6345 NTIseqLstacktraceentryT__uB9b75OUPRENsBAu4AnoePA_.align = NIM_ALIGNOF(tySequence__uB9b75OUPRENsBAu4AnoePA*);
6346 NTIseqLstacktraceentryT__uB9b75OUPRENsBAu4AnoePA_.kind = 24;
6347 NTIseqLstacktraceentryT__uB9b75OUPRENsBAu4AnoePA_.base = (&NTIstacktraceentry__oLyohQ7O2XOvGnflOss8EA_);
6348 NTIseqLstacktraceentryT__uB9b75OUPRENsBAu4AnoePA_.marker = Marker_tySequence__uB9b75OUPRENsBAu4AnoePA;
6349 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[5].kind = 1;
6350 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[5].offset = offsetof(Exception, trace);
6351 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[5].typ = (&NTIseqLstacktraceentryT__uB9b75OUPRENsBAu4AnoePA_);
6352 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[5].name = "trace";
6353 TM__Q5wkpxktOdTGvlSRo9bzt9aw_2_5[4] = &TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[10];
6354 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[10].kind = 1;
6355 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[10].offset = offsetof(Exception, up);
6356 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[10].typ = (&NTIrefexception__vU9aO9cTqOMn6CBzhV8rX7Sw_);
6357 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[10].name = "up";
6358 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[1].len = 5; TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[1].kind = 2; TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[1].sons = &TM__Q5wkpxktOdTGvlSRo9bzt9aw_2_5[0];
6359 NTIexception__XEycrCsme5C8CVWAYEcdBQ_.node = &TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[1];
6360 NTIrefexception__vU9aO9cTqOMn6CBzhV8rX7Sw_.size = sizeof(Exception*);
6361 NTIrefexception__vU9aO9cTqOMn6CBzhV8rX7Sw_.align = NIM_ALIGNOF(Exception*);
6362 NTIrefexception__vU9aO9cTqOMn6CBzhV8rX7Sw_.kind = 22;
6363 NTIrefexception__vU9aO9cTqOMn6CBzhV8rX7Sw_.base = (&NTIexception__XEycrCsme5C8CVWAYEcdBQ_);
6364 NTIrefexception__vU9aO9cTqOMn6CBzhV8rX7Sw_.marker = Marker_tyRef__vU9aO9cTqOMn6CBzhV8rX7Sw;
6365 NTIdefect__LbeSGvgPzGzXnW9caIkJqMA_.size = sizeof(tyObject_Defect__LbeSGvgPzGzXnW9caIkJqMA);
6366 NTIdefect__LbeSGvgPzGzXnW9caIkJqMA_.align = NIM_ALIGNOF(tyObject_Defect__LbeSGvgPzGzXnW9caIkJqMA);
6367 NTIdefect__LbeSGvgPzGzXnW9caIkJqMA_.kind = 17;
6368 NTIdefect__LbeSGvgPzGzXnW9caIkJqMA_.base = (&NTIexception__XEycrCsme5C8CVWAYEcdBQ_);
6369 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[11].len = 0; TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[11].kind = 2;
6370 NTIdefect__LbeSGvgPzGzXnW9caIkJqMA_.node = &TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[11];
6371 NTIreraisedefect__E0L0wGYS1gPD81VLstNO2g_.size = sizeof(tyObject_ReraiseDefect__E0L0wGYS1gPD81VLstNO2g);
6372 NTIreraisedefect__E0L0wGYS1gPD81VLstNO2g_.align = NIM_ALIGNOF(tyObject_ReraiseDefect__E0L0wGYS1gPD81VLstNO2g);
6373 NTIreraisedefect__E0L0wGYS1gPD81VLstNO2g_.kind = 17;
6374 NTIreraisedefect__E0L0wGYS1gPD81VLstNO2g_.base = (&NTIdefect__LbeSGvgPzGzXnW9caIkJqMA_);
6375 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[12].len = 0; TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[12].kind = 2;
6376 NTIreraisedefect__E0L0wGYS1gPD81VLstNO2g_.node = &TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[12];
6377 NTIrefreraisedefect__uG62cfJZ15c2siK3CKLmnQ_.size = sizeof(tyObject_ReraiseDefect__E0L0wGYS1gPD81VLstNO2g*);
6378 NTIrefreraisedefect__uG62cfJZ15c2siK3CKLmnQ_.align = NIM_ALIGNOF(tyObject_ReraiseDefect__E0L0wGYS1gPD81VLstNO2g*);
6379 NTIrefreraisedefect__uG62cfJZ15c2siK3CKLmnQ_.kind = 22;
6380 NTIrefreraisedefect__uG62cfJZ15c2siK3CKLmnQ_.base = (&NTIreraisedefect__E0L0wGYS1gPD81VLstNO2g_);
6381 NTIrefreraisedefect__uG62cfJZ15c2siK3CKLmnQ_.marker = Marker_tyRef__uG62cfJZ15c2siK3CKLmnQ;
6382 NTIarithmeticdefect__cT9c9bHlHSpA1QTnKbHjnIkA_.size = sizeof(tyObject_ArithmeticDefect__cT9c9bHlHSpA1QTnKbHjnIkA);
6383 NTIarithmeticdefect__cT9c9bHlHSpA1QTnKbHjnIkA_.align = NIM_ALIGNOF(tyObject_ArithmeticDefect__cT9c9bHlHSpA1QTnKbHjnIkA);
6384 NTIarithmeticdefect__cT9c9bHlHSpA1QTnKbHjnIkA_.kind = 17;
6385 NTIarithmeticdefect__cT9c9bHlHSpA1QTnKbHjnIkA_.base = (&NTIdefect__LbeSGvgPzGzXnW9caIkJqMA_);
6386 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[13].len = 0; TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[13].kind = 2;
6387 NTIarithmeticdefect__cT9c9bHlHSpA1QTnKbHjnIkA_.node = &TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[13];
6388 NTIoverflowdefect__9cxMi1BPLc3UKt9br86bGfGQ_.size = sizeof(tyObject_OverflowDefect__9cxMi1BPLc3UKt9br86bGfGQ);
6389 NTIoverflowdefect__9cxMi1BPLc3UKt9br86bGfGQ_.align = NIM_ALIGNOF(tyObject_OverflowDefect__9cxMi1BPLc3UKt9br86bGfGQ);
6390 NTIoverflowdefect__9cxMi1BPLc3UKt9br86bGfGQ_.kind = 17;
6391 NTIoverflowdefect__9cxMi1BPLc3UKt9br86bGfGQ_.base = (&NTIarithmeticdefect__cT9c9bHlHSpA1QTnKbHjnIkA_);
6392 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[14].len = 0; TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[14].kind = 2;
6393 NTIoverflowdefect__9cxMi1BPLc3UKt9br86bGfGQ_.node = &TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[14];
6394 NTIrefoverflowdefect__r8GBEWywN07B3Rat3azS4Q_.size = sizeof(tyObject_OverflowDefect__9cxMi1BPLc3UKt9br86bGfGQ*);
6395 NTIrefoverflowdefect__r8GBEWywN07B3Rat3azS4Q_.align = NIM_ALIGNOF(tyObject_OverflowDefect__9cxMi1BPLc3UKt9br86bGfGQ*);
6396 NTIrefoverflowdefect__r8GBEWywN07B3Rat3azS4Q_.kind = 22;
6397 NTIrefoverflowdefect__r8GBEWywN07B3Rat3azS4Q_.base = (&NTIoverflowdefect__9cxMi1BPLc3UKt9br86bGfGQ_);
6398 NTIrefoverflowdefect__r8GBEWywN07B3Rat3azS4Q_.marker = Marker_tyRef__r8GBEWywN07B3Rat3azS4Q;
6399 NTIbool__VaVACK0bpYmqIQ0mKcHfQQ_.size = sizeof(NIM_BOOL);
6400 NTIbool__VaVACK0bpYmqIQ0mKcHfQQ_.align = NIM_ALIGNOF(NIM_BOOL);
6401 NTIbool__VaVACK0bpYmqIQ0mKcHfQQ_.kind = 1;
6402 NTIbool__VaVACK0bpYmqIQ0mKcHfQQ_.base = 0;
6403 NTIbool__VaVACK0bpYmqIQ0mKcHfQQ_.flags = 3;
6404 NTIcatchableerror__qrLSDoe2oBoAqNtJ9badtnA_.size = sizeof(tyObject_CatchableError__qrLSDoe2oBoAqNtJ9badtnA);
6405 NTIcatchableerror__qrLSDoe2oBoAqNtJ9badtnA_.align = NIM_ALIGNOF(tyObject_CatchableError__qrLSDoe2oBoAqNtJ9badtnA);
6406 NTIcatchableerror__qrLSDoe2oBoAqNtJ9badtnA_.kind = 17;
6407 NTIcatchableerror__qrLSDoe2oBoAqNtJ9badtnA_.base = (&NTIexception__XEycrCsme5C8CVWAYEcdBQ_);
6408 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[15].len = 0; TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[15].kind = 2;
6409 NTIcatchableerror__qrLSDoe2oBoAqNtJ9badtnA_.node = &TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[15];
6410 NTIvalueerror__yoNlBGx0D2tRizIdhQuENw_.size = sizeof(tyObject_ValueError__yoNlBGx0D2tRizIdhQuENw);
6411 NTIvalueerror__yoNlBGx0D2tRizIdhQuENw_.align = NIM_ALIGNOF(tyObject_ValueError__yoNlBGx0D2tRizIdhQuENw);
6412 NTIvalueerror__yoNlBGx0D2tRizIdhQuENw_.kind = 17;
6413 NTIvalueerror__yoNlBGx0D2tRizIdhQuENw_.base = (&NTIcatchableerror__qrLSDoe2oBoAqNtJ9badtnA_);
6414 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[16].len = 0; TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[16].kind = 2;
6415 NTIvalueerror__yoNlBGx0D2tRizIdhQuENw_.node = &TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[16];
6416 NTIkeyerror__t7nhKLvXTQS9cS8ByJU9bIag_.size = sizeof(tyObject_KeyError__t7nhKLvXTQS9cS8ByJU9bIag);
6417 NTIkeyerror__t7nhKLvXTQS9cS8ByJU9bIag_.align = NIM_ALIGNOF(tyObject_KeyError__t7nhKLvXTQS9cS8ByJU9bIag);
6418 NTIkeyerror__t7nhKLvXTQS9cS8ByJU9bIag_.kind = 17;
6419 NTIkeyerror__t7nhKLvXTQS9cS8ByJU9bIag_.base = (&NTIvalueerror__yoNlBGx0D2tRizIdhQuENw_);
6420 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[17].len = 0; TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[17].kind = 2;
6421 NTIkeyerror__t7nhKLvXTQS9cS8ByJU9bIag_.node = &TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[17];
6422 NTIrefkeyerror__8SzoIAgLw9ci2v0yafHj9b6Q_.size = sizeof(tyObject_KeyError__t7nhKLvXTQS9cS8ByJU9bIag*);
6423 NTIrefkeyerror__8SzoIAgLw9ci2v0yafHj9b6Q_.align = NIM_ALIGNOF(tyObject_KeyError__t7nhKLvXTQS9cS8ByJU9bIag*);
6424 NTIrefkeyerror__8SzoIAgLw9ci2v0yafHj9b6Q_.kind = 22;
6425 NTIrefkeyerror__8SzoIAgLw9ci2v0yafHj9b6Q_.base = (&NTIkeyerror__t7nhKLvXTQS9cS8ByJU9bIag_);
6426 NTIrefkeyerror__8SzoIAgLw9ci2v0yafHj9b6Q_.marker = Marker_tyRef__8SzoIAgLw9ci2v0yafHj9b6Q;
6427 NTIassertiondefect__PtYxPmY5X0dorfvxAFbJpQ_.size = sizeof(tyObject_AssertionDefect__PtYxPmY5X0dorfvxAFbJpQ);
6428 NTIassertiondefect__PtYxPmY5X0dorfvxAFbJpQ_.align = NIM_ALIGNOF(tyObject_AssertionDefect__PtYxPmY5X0dorfvxAFbJpQ);
6429 NTIassertiondefect__PtYxPmY5X0dorfvxAFbJpQ_.kind = 17;
6430 NTIassertiondefect__PtYxPmY5X0dorfvxAFbJpQ_.base = (&NTIdefect__LbeSGvgPzGzXnW9caIkJqMA_);
6431 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[18].len = 0; TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[18].kind = 2;
6432 NTIassertiondefect__PtYxPmY5X0dorfvxAFbJpQ_.node = &TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[18];
6433 NTIrefassertiondefect__S8DV6hfcgC9c0IiUsAoR29cQ_.size = sizeof(tyObject_AssertionDefect__PtYxPmY5X0dorfvxAFbJpQ*);
6434 NTIrefassertiondefect__S8DV6hfcgC9c0IiUsAoR29cQ_.align = NIM_ALIGNOF(tyObject_AssertionDefect__PtYxPmY5X0dorfvxAFbJpQ*);
6435 NTIrefassertiondefect__S8DV6hfcgC9c0IiUsAoR29cQ_.kind = 22;
6436 NTIrefassertiondefect__S8DV6hfcgC9c0IiUsAoR29cQ_.base = (&NTIassertiondefect__PtYxPmY5X0dorfvxAFbJpQ_);
6437 NTIrefassertiondefect__S8DV6hfcgC9c0IiUsAoR29cQ_.marker = Marker_tyRef__S8DV6hfcgC9c0IiUsAoR29cQ;
6438 NTIuint4954__M4na42GvebBMnI5wV9cYMxg_.size = sizeof(NU16);
6439 NTIuint4954__M4na42GvebBMnI5wV9cYMxg_.align = NIM_ALIGNOF(NU16);
6440 NTIuint4954__M4na42GvebBMnI5wV9cYMxg_.kind = 42;
6441 NTIuint4954__M4na42GvebBMnI5wV9cYMxg_.base = 0;
6442 NTIuint4954__M4na42GvebBMnI5wV9cYMxg_.flags = 3;
6443 NTIint4954__kDPg4wXyR8DDyA0MeEjIsw_.size = sizeof(NI16);
6444 NTIint4954__kDPg4wXyR8DDyA0MeEjIsw_.align = NIM_ALIGNOF(NI16);
6445 NTIint4954__kDPg4wXyR8DDyA0MeEjIsw_.kind = 33;
6446 NTIint4954__kDPg4wXyR8DDyA0MeEjIsw_.base = 0;
6447 NTIint4954__kDPg4wXyR8DDyA0MeEjIsw_.flags = 3;
6448 NTIint5150__sVg18TP9cLifHyygRe9cro9aA_.size = sizeof(NI32);
6449 NTIint5150__sVg18TP9cLifHyygRe9cro9aA_.align = NIM_ALIGNOF(NI32);
6450 NTIint5150__sVg18TP9cLifHyygRe9cro9aA_.kind = 34;
6451 NTIint5150__sVg18TP9cLifHyygRe9cro9aA_.base = 0;
6452 NTIint5150__sVg18TP9cLifHyygRe9cro9aA_.flags = 3;
6453 NTIint56__chXunH2dwinSkhpA6JnsXw_.size = sizeof(NI8);
6454 NTIint56__chXunH2dwinSkhpA6JnsXw_.align = NIM_ALIGNOF(NI8);
6455 NTIint56__chXunH2dwinSkhpA6JnsXw_.kind = 32;
6456 NTIint56__chXunH2dwinSkhpA6JnsXw_.base = 0;
6457 NTIint56__chXunH2dwinSkhpA6JnsXw_.flags = 3;
6458 NTIfloat__w9bl9a1ul9ctRJWiMl9cNnIMvg_.size = sizeof(NF);
6459 NTIfloat__w9bl9a1ul9ctRJWiMl9cNnIMvg_.align = NIM_ALIGNOF(NF);
6460 NTIfloat__w9bl9a1ul9ctRJWiMl9cNnIMvg_.kind = 36;
6461 NTIfloat__w9bl9a1ul9ctRJWiMl9cNnIMvg_.base = 0;
6462 NTIfloat__w9bl9a1ul9ctRJWiMl9cNnIMvg_.flags = 3;
6463 NTIchar__nmiMWKVIe46vacnhAFrQvw_.size = sizeof(NIM_CHAR);
6464 NTIchar__nmiMWKVIe46vacnhAFrQvw_.align = NIM_ALIGNOF(NIM_CHAR);
6465 NTIchar__nmiMWKVIe46vacnhAFrQvw_.kind = 2;
6466 NTIchar__nmiMWKVIe46vacnhAFrQvw_.base = 0;
6467 NTIchar__nmiMWKVIe46vacnhAFrQvw_.flags = 3;
6468 NTIobjectassignmentdefect__6toVe0IizlEwN9bORXEdX3g_.size = sizeof(tyObject_ObjectAssignmentDefect__6toVe0IizlEwN9bORXEdX3g);
6469 NTIobjectassignmentdefect__6toVe0IizlEwN9bORXEdX3g_.align = NIM_ALIGNOF(tyObject_ObjectAssignmentDefect__6toVe0IizlEwN9bORXEdX3g);
6470 NTIobjectassignmentdefect__6toVe0IizlEwN9bORXEdX3g_.kind = 17;
6471 NTIobjectassignmentdefect__6toVe0IizlEwN9bORXEdX3g_.base = (&NTIdefect__LbeSGvgPzGzXnW9caIkJqMA_);
6472 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[19].len = 0; TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[19].kind = 2;
6473 NTIobjectassignmentdefect__6toVe0IizlEwN9bORXEdX3g_.node = &TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[19];
6474 NTIrefobjectassignmentdefect__C0A9bPZSVeyr2BWpBf4Jxqw_.size = sizeof(tyObject_ObjectAssignmentDefect__6toVe0IizlEwN9bORXEdX3g*);
6475 NTIrefobjectassignmentdefect__C0A9bPZSVeyr2BWpBf4Jxqw_.align = NIM_ALIGNOF(tyObject_ObjectAssignmentDefect__6toVe0IizlEwN9bORXEdX3g*);
6476 NTIrefobjectassignmentdefect__C0A9bPZSVeyr2BWpBf4Jxqw_.kind = 22;
6477 NTIrefobjectassignmentdefect__C0A9bPZSVeyr2BWpBf4Jxqw_.base = (&NTIobjectassignmentdefect__6toVe0IizlEwN9bORXEdX3g_);
6478 NTIrefobjectassignmentdefect__C0A9bPZSVeyr2BWpBf4Jxqw_.marker = Marker_tyRef__C0A9bPZSVeyr2BWpBf4Jxqw;
6479 NTIindexdefect__n6tGEPHKkh7E1AP9bj30WrQ_.size = sizeof(tyObject_IndexDefect__n6tGEPHKkh7E1AP9bj30WrQ);
6480 NTIindexdefect__n6tGEPHKkh7E1AP9bj30WrQ_.align = NIM_ALIGNOF(tyObject_IndexDefect__n6tGEPHKkh7E1AP9bj30WrQ);
6481 NTIindexdefect__n6tGEPHKkh7E1AP9bj30WrQ_.kind = 17;
6482 NTIindexdefect__n6tGEPHKkh7E1AP9bj30WrQ_.base = (&NTIdefect__LbeSGvgPzGzXnW9caIkJqMA_);
6483 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[20].len = 0; TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[20].kind = 2;
6484 NTIindexdefect__n6tGEPHKkh7E1AP9bj30WrQ_.node = &TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[20];
6485 NTIrefindexdefect__RJnHOb9cQV3neNC9cDkRgMyw_.size = sizeof(tyObject_IndexDefect__n6tGEPHKkh7E1AP9bj30WrQ*);
6486 NTIrefindexdefect__RJnHOb9cQV3neNC9cDkRgMyw_.align = NIM_ALIGNOF(tyObject_IndexDefect__n6tGEPHKkh7E1AP9bj30WrQ*);
6487 NTIrefindexdefect__RJnHOb9cQV3neNC9cDkRgMyw_.kind = 22;
6488 NTIrefindexdefect__RJnHOb9cQV3neNC9cDkRgMyw_.base = (&NTIindexdefect__n6tGEPHKkh7E1AP9bj30WrQ_);
6489 NTIrefindexdefect__RJnHOb9cQV3neNC9cDkRgMyw_.marker = Marker_tyRef__RJnHOb9cQV3neNC9cDkRgMyw;
6490 NTIrefvalueerror__Ie1m0dv1ZHg72IgPRr1cDw_.size = sizeof(tyObject_ValueError__yoNlBGx0D2tRizIdhQuENw*);
6491 NTIrefvalueerror__Ie1m0dv1ZHg72IgPRr1cDw_.align = NIM_ALIGNOF(tyObject_ValueError__yoNlBGx0D2tRizIdhQuENw*);
6492 NTIrefvalueerror__Ie1m0dv1ZHg72IgPRr1cDw_.kind = 22;
6493 NTIrefvalueerror__Ie1m0dv1ZHg72IgPRr1cDw_.base = (&NTIvalueerror__yoNlBGx0D2tRizIdhQuENw_);
6494 NTIrefvalueerror__Ie1m0dv1ZHg72IgPRr1cDw_.marker = Marker_tyRef__Ie1m0dv1ZHg72IgPRr1cDw;
6495 NTIoserror__BeJgrOdDsczOwEWOZbRfKA_.size = sizeof(tyObject_OSError__BeJgrOdDsczOwEWOZbRfKA);
6496 NTIoserror__BeJgrOdDsczOwEWOZbRfKA_.align = NIM_ALIGNOF(tyObject_OSError__BeJgrOdDsczOwEWOZbRfKA);
6497 NTIoserror__BeJgrOdDsczOwEWOZbRfKA_.kind = 17;
6498 NTIoserror__BeJgrOdDsczOwEWOZbRfKA_.base = (&NTIcatchableerror__qrLSDoe2oBoAqNtJ9badtnA_);
6499 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[21].kind = 1;
6500 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[21].offset = offsetof(tyObject_OSError__BeJgrOdDsczOwEWOZbRfKA, errorCode);
6501 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[21].typ = (&NTIint5150__sVg18TP9cLifHyygRe9cro9aA_);
6502 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[21].name = "errorCode";
6503 NTIoserror__BeJgrOdDsczOwEWOZbRfKA_.node = &TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[21];
6504 NTIrefoserror__9clYsYwyjCqe2PFTuCI3Ubg_.size = sizeof(tyObject_OSError__BeJgrOdDsczOwEWOZbRfKA*);
6505 NTIrefoserror__9clYsYwyjCqe2PFTuCI3Ubg_.align = NIM_ALIGNOF(tyObject_OSError__BeJgrOdDsczOwEWOZbRfKA*);
6506 NTIrefoserror__9clYsYwyjCqe2PFTuCI3Ubg_.kind = 22;
6507 NTIrefoserror__9clYsYwyjCqe2PFTuCI3Ubg_.base = (&NTIoserror__BeJgrOdDsczOwEWOZbRfKA_);
6508 NTIrefoserror__9clYsYwyjCqe2PFTuCI3Ubg_.marker = Marker_tyRef__9clYsYwyjCqe2PFTuCI3Ubg;
6509 NTIioerror__iLZrPn9anoh9ad1MmO0RczFw_.size = sizeof(tyObject_IOError__iLZrPn9anoh9ad1MmO0RczFw);
6510 NTIioerror__iLZrPn9anoh9ad1MmO0RczFw_.align = NIM_ALIGNOF(tyObject_IOError__iLZrPn9anoh9ad1MmO0RczFw);
6511 NTIioerror__iLZrPn9anoh9ad1MmO0RczFw_.kind = 17;
6512 NTIioerror__iLZrPn9anoh9ad1MmO0RczFw_.base = (&NTIcatchableerror__qrLSDoe2oBoAqNtJ9badtnA_);
6513 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[22].len = 0; TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[22].kind = 2;
6514 NTIioerror__iLZrPn9anoh9ad1MmO0RczFw_.node = &TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[22];
6515 NTIrefioerror__HMIVdYjdZYWskTmTQVo5BQ_.size = sizeof(tyObject_IOError__iLZrPn9anoh9ad1MmO0RczFw*);
6516 NTIrefioerror__HMIVdYjdZYWskTmTQVo5BQ_.align = NIM_ALIGNOF(tyObject_IOError__iLZrPn9anoh9ad1MmO0RczFw*);
6517 NTIrefioerror__HMIVdYjdZYWskTmTQVo5BQ_.kind = 22;
6518 NTIrefioerror__HMIVdYjdZYWskTmTQVo5BQ_.base = (&NTIioerror__iLZrPn9anoh9ad1MmO0RczFw_);
6519 NTIrefioerror__HMIVdYjdZYWskTmTQVo5BQ_.marker = Marker_tyRef__HMIVdYjdZYWskTmTQVo5BQ;
6520 NTIeoferror__KGSY1JdrNB7Xi8KDhXFhSg_.size = sizeof(tyObject_EOFError__KGSY1JdrNB7Xi8KDhXFhSg);
6521 NTIeoferror__KGSY1JdrNB7Xi8KDhXFhSg_.align = NIM_ALIGNOF(tyObject_EOFError__KGSY1JdrNB7Xi8KDhXFhSg);
6522 NTIeoferror__KGSY1JdrNB7Xi8KDhXFhSg_.kind = 17;
6523 NTIeoferror__KGSY1JdrNB7Xi8KDhXFhSg_.base = (&NTIioerror__iLZrPn9anoh9ad1MmO0RczFw_);
6524 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[23].len = 0; TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[23].kind = 2;
6525 NTIeoferror__KGSY1JdrNB7Xi8KDhXFhSg_.node = &TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[23];
6526 NTIrefeoferror__LEclZrWX2FQAodlapxGITw_.size = sizeof(tyObject_EOFError__KGSY1JdrNB7Xi8KDhXFhSg*);
6527 NTIrefeoferror__LEclZrWX2FQAodlapxGITw_.align = NIM_ALIGNOF(tyObject_EOFError__KGSY1JdrNB7Xi8KDhXFhSg*);
6528 NTIrefeoferror__LEclZrWX2FQAodlapxGITw_.kind = 22;
6529 NTIrefeoferror__LEclZrWX2FQAodlapxGITw_.base = (&NTIeoferror__KGSY1JdrNB7Xi8KDhXFhSg_);
6530 NTIrefeoferror__LEclZrWX2FQAodlapxGITw_.marker = Marker_tyRef__LEclZrWX2FQAodlapxGITw;
6531 NTIbiggestint__Aav8dQoMlCFnZRxA0IhTHQ_.size = sizeof(NI64);
6532 NTIbiggestint__Aav8dQoMlCFnZRxA0IhTHQ_.align = NIM_ALIGNOF(NI64);
6533 NTIbiggestint__Aav8dQoMlCFnZRxA0IhTHQ_.kind = 35;
6534 NTIbiggestint__Aav8dQoMlCFnZRxA0IhTHQ_.base = 0;
6535 NTIbiggestint__Aav8dQoMlCFnZRxA0IhTHQ_.flags = 3;
6536 NTIuint5150__JrFyJbYm9b5I4hJ9cWDqvfYA_.size = sizeof(NU32);
6537 NTIuint5150__JrFyJbYm9b5I4hJ9cWDqvfYA_.align = NIM_ALIGNOF(NU32);
6538 NTIuint5150__JrFyJbYm9b5I4hJ9cWDqvfYA_.kind = 43;
6539 NTIuint5150__JrFyJbYm9b5I4hJ9cWDqvfYA_.base = 0;
6540 NTIuint5150__JrFyJbYm9b5I4hJ9cWDqvfYA_.flags = 3;
6541 NTIrootref__0vJvi4uHbxjbxlkkX7P1EA_.size = sizeof(RootObj*);
6542 NTIrootref__0vJvi4uHbxjbxlkkX7P1EA_.align = NIM_ALIGNOF(RootObj*);
6543 NTIrootref__0vJvi4uHbxjbxlkkX7P1EA_.kind = 22;
6544 NTIrootref__0vJvi4uHbxjbxlkkX7P1EA_.base = (&NTIrootobj__ytyiCJqK439aF9cIibuRVpAg_);
6545 NTIrootref__0vJvi4uHbxjbxlkkX7P1EA_.marker = Marker_tyRef__0vJvi4uHbxjbxlkkX7P1EA;
6546 NTIuint56__k3HXouOuhqAKq0dx450lXQ_.size = sizeof(NU8);
6547 NTIuint56__k3HXouOuhqAKq0dx450lXQ_.align = NIM_ALIGNOF(NU8);
6548 NTIuint56__k3HXouOuhqAKq0dx450lXQ_.kind = 41;
6549 NTIuint56__k3HXouOuhqAKq0dx450lXQ_.base = 0;
6550 NTIuint56__k3HXouOuhqAKq0dx450lXQ_.flags = 3;
6551 NTIrangedefect__Rp9adJYTsbbIUzQ8fWxwgdA_.size = sizeof(tyObject_RangeDefect__Rp9adJYTsbbIUzQ8fWxwgdA);
6552 NTIrangedefect__Rp9adJYTsbbIUzQ8fWxwgdA_.align = NIM_ALIGNOF(tyObject_RangeDefect__Rp9adJYTsbbIUzQ8fWxwgdA);
6553 NTIrangedefect__Rp9adJYTsbbIUzQ8fWxwgdA_.kind = 17;
6554 NTIrangedefect__Rp9adJYTsbbIUzQ8fWxwgdA_.base = (&NTIdefect__LbeSGvgPzGzXnW9caIkJqMA_);
6555 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[24].len = 0; TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[24].kind = 2;
6556 NTIrangedefect__Rp9adJYTsbbIUzQ8fWxwgdA_.node = &TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[24];
6557 NTIint__xHTZrq9aYs6boc9bCba0JbpQ_.size = sizeof(NI);
6558 NTIint__xHTZrq9aYs6boc9bCba0JbpQ_.align = NIM_ALIGNOF(NI);
6559 NTIint__xHTZrq9aYs6boc9bCba0JbpQ_.kind = 31;
6560 NTIint__xHTZrq9aYs6boc9bCba0JbpQ_.base = 0;
6561 NTIint__xHTZrq9aYs6boc9bCba0JbpQ_.flags = 3;
6562 NTIrefint__9ai78kkwqt3gikTN9cpHKUVg_.size = sizeof(NI*);
6563 NTIrefint__9ai78kkwqt3gikTN9cpHKUVg_.align = NIM_ALIGNOF(NI*);
6564 NTIrefint__9ai78kkwqt3gikTN9cpHKUVg_.kind = 22;
6565 NTIrefint__9ai78kkwqt3gikTN9cpHKUVg_.base = (&NTIint__rR5Bzr1D5krxoo1NcNyeMA_);
6566 NTIrefint__9ai78kkwqt3gikTN9cpHKUVg_.marker = Marker_tyRef__9ai78kkwqt3gikTN9cpHKUVg;
6567 NTIptrstring__Y36n7l9b7WX4rcaAYCe6LWw_.size = sizeof(NimStringDesc**);
6568 NTIptrstring__Y36n7l9b7WX4rcaAYCe6LWw_.align = NIM_ALIGNOF(NimStringDesc**);
6569 NTIptrstring__Y36n7l9b7WX4rcaAYCe6LWw_.kind = 21;
6570 NTIptrstring__Y36n7l9b7WX4rcaAYCe6LWw_.base = (&NTIstring__77mFvmsOLKik79ci2hXkHEg_);
6571 NTIptrstring__Y36n7l9b7WX4rcaAYCe6LWw_.flags = 3;
6572 NTIcint__nlCscttRCss70IBTyuBqnA_.size = sizeof(int);
6573 NTIcint__nlCscttRCss70IBTyuBqnA_.align = NIM_ALIGNOF(int);
6574 NTIcint__nlCscttRCss70IBTyuBqnA_.kind = 34;
6575 NTIcint__nlCscttRCss70IBTyuBqnA_.base = 0;
6576 NTIcint__nlCscttRCss70IBTyuBqnA_.flags = 3;
6577 NTIdivbyzerodefect__n3A4gjRrFZBuNnTYx1h9a8w_.size = sizeof(tyObject_DivByZeroDefect__n3A4gjRrFZBuNnTYx1h9a8w);
6578 NTIdivbyzerodefect__n3A4gjRrFZBuNnTYx1h9a8w_.align = NIM_ALIGNOF(tyObject_DivByZeroDefect__n3A4gjRrFZBuNnTYx1h9a8w);
6579 NTIdivbyzerodefect__n3A4gjRrFZBuNnTYx1h9a8w_.kind = 17;
6580 NTIdivbyzerodefect__n3A4gjRrFZBuNnTYx1h9a8w_.base = (&NTIarithmeticdefect__cT9c9bHlHSpA1QTnKbHjnIkA_);
6581 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[25].len = 0; TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[25].kind = 2;
6582 NTIdivbyzerodefect__n3A4gjRrFZBuNnTYx1h9a8w_.node = &TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[25];
6583 NTIint__u50F0puw9b9c6p256tX4eJLQ_.size = sizeof(NI);
6584 NTIint__u50F0puw9b9c6p256tX4eJLQ_.align = NIM_ALIGNOF(NI);
6585 NTIint__u50F0puw9b9c6p256tX4eJLQ_.kind = 31;
6586 NTIint__u50F0puw9b9c6p256tX4eJLQ_.base = 0;
6587 NTIint__u50F0puw9b9c6p256tX4eJLQ_.flags = 3;
6588 }
6589 
6590