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