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

#include "nimbase.h"
#include <sys/types.h>
                          #include <pthread.h>
#include <pthread.h>
#include <sys/types.h>
#undef LANGUAGE_C
#undef MIPSEB
#undef MIPSEL
#undef PPC
#undef R3000
#undef R4000
#undef i386
#undef linux
#undef mips
#undef near
#undef far
#undef powerpc
#undef unix
#define nimfr_(x, y)
#define nimln_(x, y)
typedef struct tyObject_Semaphore__sx9abLHOwgGDBH9bpoqw2ezw tyObject_Semaphore__sx9abLHOwgGDBH9bpoqw2ezw;
typedef struct tyObject_Worker__AqHEWWcw2VBFjoa2Hp8Akw tyObject_Worker__AqHEWWcw2VBFjoa2Hp8Akw;
typedef struct tyObject_Thread__aCkJjuuA9audHPimgL5uPkg tyObject_Thread__aCkJjuuA9audHPimgL5uPkg;
typedef struct tyObject_GcThread__hgJQSlfXDOK3SwSHjeZBXg tyObject_GcThread__hgJQSlfXDOK3SwSHjeZBXg;
typedef struct tyObject_ToFreeQueue__5COJP8EWIaAuXvZlDbQZmw tyObject_ToFreeQueue__5COJP8EWIaAuXvZlDbQZmw;
typedef struct tyObject_ThreadPoolState__jN9benzGjAA9bryIHC1FGnZA tyObject_ThreadPoolState__jN9benzGjAA9bryIHC1FGnZA;
typedef struct TNimType TNimType;
typedef struct TNimNode TNimNode;
typedef struct RootObj RootObj;
typedef struct NimStringDesc NimStringDesc;
typedef struct TGenericSeq TGenericSeq;
typedef struct tyObject_FlowVarObj__pNu0cief5ujI1ROVhZYW9cA tyObject_FlowVarObj__pNu0cief5ujI1ROVhZYW9cA;
typedef struct tyObject_FlowVarBaseObj__0j3Tva7heDwa6msYUb9a4oA tyObject_FlowVarBaseObj__0j3Tva7heDwa6msYUb9a4oA;
typedef struct tyObject_AwaitInfo__InuzBj4ASNnb8C8ZpRzfbA tyObject_AwaitInfo__InuzBj4ASNnb8C8ZpRzfbA;
typedef struct tySequence__AjV3cEUgs0Y9c7dCt9aItdIA tySequence__AjV3cEUgs0Y9c7dCt9aItdIA;
typedef struct tyObject_XmlNodeObj__X79bE2j9a1V7tizbx9blALudQ tyObject_XmlNodeObj__X79bE2j9a1V7tizbx9blALudQ;
typedef struct tyObject_FlowVarObj__wW8ek1vyLZa9a609brp8mWRg tyObject_FlowVarObj__wW8ek1vyLZa9a609brp8mWRg;
typedef long long tyArray__xLtLuIT9aUkeKRzzMNC75Vw[6];
typedef long tyArray__xDUyu9aScDpt0JZLU6q9aEZQ[5];
struct tyObject_Semaphore__sx9abLHOwgGDBH9bpoqw2ezw {
pthread_cond_t c;
pthread_mutex_t L;
NI counter;
};
typedef N_NIMCALL_PTR(void, tyProc__nSqh6BBL9cSEu9bcR48Z72QA) (tyObject_Worker__AqHEWWcw2VBFjoa2Hp8Akw* m);
struct tyObject_Thread__aCkJjuuA9audHPimgL5uPkg {
tyObject_GcThread__hgJQSlfXDOK3SwSHjeZBXg* core;
unsigned long sys;
tyProc__nSqh6BBL9cSEu9bcR48Z72QA dataFn;
tyObject_Worker__AqHEWWcw2VBFjoa2Hp8Akw* data;
};
typedef tyObject_Thread__aCkJjuuA9audHPimgL5uPkg tyArray__VzdKMWiVX55GSra4f1dzcQ[256];
typedef N_NIMCALL_PTR(void, tyProc__fhqfcnDhIcLpBpSTVsWEZg) (void* thread, void* args);
typedef void* tyArray__2PWyF6nokyTyhzmcY3ON3w[128];
struct tyObject_ToFreeQueue__5COJP8EWIaAuXvZlDbQZmw {
NI len;
pthread_mutex_t lock;
tyObject_Semaphore__sx9abLHOwgGDBH9bpoqw2ezw empty;
tyArray__2PWyF6nokyTyhzmcY3ON3w data;
};
struct tyObject_Worker__AqHEWWcw2VBFjoa2Hp8Akw {
tyObject_Semaphore__sx9abLHOwgGDBH9bpoqw2ezw taskArrived;
tyObject_Semaphore__sx9abLHOwgGDBH9bpoqw2ezw taskStarted;
tyProc__fhqfcnDhIcLpBpSTVsWEZg f;
void* data;
NIM_BOOL ready;
NIM_BOOL initialized;
NIM_BOOL shutdown;
tyObject_ToFreeQueue__5COJP8EWIaAuXvZlDbQZmw q;
tyObject_Semaphore__sx9abLHOwgGDBH9bpoqw2ezw readyForTask;
};
typedef tyObject_Worker__AqHEWWcw2VBFjoa2Hp8Akw tyArray__5sGw9aMSI320X9cbYIDJFEOQ[256];
typedef tyObject_Thread__aCkJjuuA9audHPimgL5uPkg tyArray__0x6EwkmjS0RXNUNMOfdG9cg[32];
typedef tyObject_Worker__AqHEWWcw2VBFjoa2Hp8Akw tyArray__W9bX58rb2TvIPS9bAprPBVQg[32];
struct tyObject_ThreadPoolState__jN9benzGjAA9bryIHC1FGnZA {
NI calls;
};
typedef NU8 tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A;
typedef NU8 tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ;
typedef N_NIMCALL_PTR(void, tyProc__ojoeKfW4VYIm36I9cpDTQIg) (void* p, NI op);
typedef N_NIMCALL_PTR(void*, tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ) (void* p);
struct TNimType {
NI size;
tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A kind;
tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ flags;
TNimType* base;
TNimNode* node;
void* finalizer;
tyProc__ojoeKfW4VYIm36I9cpDTQIg marker;
tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ deepcopy;
};
typedef NU8 tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ;
struct TNimNode {
tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ kind;
NI offset;
TNimType* typ;
NCSTRING name;
NI len;
TNimNode** sons;
};
struct TGenericSeq {
NI len;
NI reserved;
};
struct NimStringDesc {
  TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
struct RootObj {
TNimType* m_type;
};
struct tyObject_FlowVarBaseObj__0j3Tva7heDwa6msYUb9a4oA {
  RootObj Sup;
NIM_BOOL ready;
NIM_BOOL usesSemaphore;
NIM_BOOL awaited;
tyObject_Semaphore__sx9abLHOwgGDBH9bpoqw2ezw cv;
tyObject_AwaitInfo__InuzBj4ASNnb8C8ZpRzfbA* ai;
NI idx;
void* data;
void* owner;
};
struct tyObject_FlowVarObj__pNu0cief5ujI1ROVhZYW9cA {
  tyObject_FlowVarBaseObj__0j3Tva7heDwa6msYUb9a4oA Sup;
NimStringDesc* blob;
};
struct tyObject_AwaitInfo__InuzBj4ASNnb8C8ZpRzfbA {
tyObject_Semaphore__sx9abLHOwgGDBH9bpoqw2ezw cv;
NI idx;
};
typedef NU8 tyEnum_ThreadPoolAdvice__vD9cAMuSmfH29a9al5Q9cUZCig;
struct tyObject_FlowVarObj__wW8ek1vyLZa9a609brp8mWRg {
  tyObject_FlowVarBaseObj__0j3Tva7heDwa6msYUb9a4oA Sup;
tySequence__AjV3cEUgs0Y9c7dCt9aItdIA* blob;
};
struct tySequence__AjV3cEUgs0Y9c7dCt9aItdIA {
  TGenericSeq Sup;
  tyObject_XmlNodeObj__X79bE2j9a1V7tizbx9blALudQ* data[SEQ_DECL_SIZE];
};
static N_INLINE(void, initLock__Mz9ax9a7rBFxTQq0g0dLnxAwlocks)(pthread_mutex_t* lock);
N_LIB_PRIVATE N_NIMCALL(void, initSemaphore__Bcnye583wFsPyzfpEXQ9cCg)(tyObject_Semaphore__sx9abLHOwgGDBH9bpoqw2ezw* cv);
static N_INLINE(void, initCond__7RIvB7pABFMIQe9bK9bZVqJglocks)(pthread_cond_t* cond);
N_LIB_PRIVATE N_NIMCALL(void, setup__WTnSSeVs19cfp5pRs6KBLXQ)(void);
N_LIB_PRIVATE N_NIMCALL(NI, ncpicountProcessors)(void);
N_LIB_PRIVATE N_NOINLINE(void, activateWorkerThread__oNQ43gcq37w6ZH7r69b8oag)(NI i);
N_LIB_PRIVATE N_NIMCALL(void, createThread__ZlRlGL9cCaGDCyoP82KIjPQ)(tyObject_Thread__aCkJjuuA9audHPimgL5uPkg* t, tyProc__nSqh6BBL9cSEu9bcR48Z72QA tp, tyObject_Worker__AqHEWWcw2VBFjoa2Hp8Akw* param);
N_LIB_PRIVATE N_NIMCALL(void, slave__1yqYR9cLeffanOjn0piJ2VQ)(tyObject_Worker__AqHEWWcw2VBFjoa2Hp8Akw* w);
static N_INLINE(NI, atomicDec__v6qORsZ9azlHHhOL1JYACRA_2system)(NI* memLoc, NI x);
N_LIB_PRIVATE N_NIMCALL(void, nossleep)(NI milsecs);
N_LIB_PRIVATE N_NIMCALL(void, signal__Bcnye583wFsPyzfpEXQ9cCg_2)(tyObject_Semaphore__sx9abLHOwgGDBH9bpoqw2ezw* cv);
N_LIB_PRIVATE N_NIMCALL(void, acquire__9bDG9bIkA6DtNcXVdL7bnLvg)(pthread_mutex_t* lock);
N_LIB_PRIVATE N_NIMCALL(void, release__9bDG9bIkA6DtNcXVdL7bnLvg_2)(pthread_mutex_t* lock);
static N_INLINE(void, signal__7RIvB7pABFMIQe9bK9bZVqJg_2locks)(pthread_cond_t* cond);
N_LIB_PRIVATE N_NIMCALL(void, blockUntil__Bcnye583wFsPyzfpEXQ9cCg_3)(tyObject_Semaphore__sx9abLHOwgGDBH9bpoqw2ezw* cv);
static N_INLINE(void, wait__AelMZFoEpIv2zok9a8VBM3glocks)(pthread_cond_t* cond, pthread_mutex_t* lock);
N_LIB_PRIVATE N_NIMCALL(void, cleanFlowVars__1yqYR9cLeffanOjn0piJ2VQ_2)(tyObject_Worker__AqHEWWcw2VBFjoa2Hp8Akw* w);
N_LIB_PRIVATE N_NIMCALL(void, nimGCunref)(void* p);
static N_INLINE(NIM_BOOL*, nimErrorFlag)(void);
N_LIB_PRIVATE N_NIMCALL(void, blockUntil__f7fvUPN27gapZAuCUIJwVA)(tyObject_FlowVarBaseObj__0j3Tva7heDwa6msYUb9a4oA* fv);
static N_INLINE(void, destroySemaphore__NTILssLLscGtKB8oC9bOaQwthreadpool)(tyObject_Semaphore__sx9abLHOwgGDBH9bpoqw2ezw* cv);
static N_INLINE(void, deinitCond__7RIvB7pABFMIQe9bK9bZVqJg_3locks)(pthread_cond_t* cond);
static N_INLINE(void, deinitLock__Mz9ax9a7rBFxTQq0g0dLnxAw_2locks)(pthread_mutex_t* lock);
N_LIB_PRIVATE N_NIMCALL(void, genericSeqDeepCopy)(void* dest, void* src, TNimType* mt);
N_LIB_PRIVATE N_NIMCALL(void, finished__f7fvUPN27gapZAuCUIJwVA_2)(tyObject_FlowVarBaseObj__0j3Tva7heDwa6msYUb9a4oA* fv);
N_LIB_PRIVATE N_NIMCALL(void, failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A)(NimStringDesc* msg);
N_LIB_PRIVATE N_NIMCALL(void, wakeupWorkerToProcessQueue__1yqYR9cLeffanOjn0piJ2VQ_3)(tyObject_Worker__AqHEWWcw2VBFjoa2Hp8Akw* w);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, cas__JJYX9aDJanv6Du380geRC5w)(NIM_BOOL* p, NIM_BOOL oldValue, NIM_BOOL newValue);
static N_INLINE(void, cpuRelax__RsY2eAkO9aEvlDhb7ZyRF8g_3system)(void);
N_LIB_PRIVATE N_NIMCALL(void, colonanonymous___DNA2yPvg9bR9bzqSrU32jk3g)(void* w, void* a);
N_LIB_PRIVATE N_NIMCALL(void, fvFinalizer__lBnghJJMgLodZOwAl3k1AA)(tyObject_FlowVarObj__pNu0cief5ujI1ROVhZYW9cA* fv);
N_LIB_PRIVATE N_NIMCALL(void, nimGCvisit)(void* d, NI op);
static N_NIMCALL(void, Marker_tyRef__3fzl6uX4jyR8ftIyOu6qDA)(void* p, NI op);
N_LIB_PRIVATE N_NIMCALL(void*, newObj)(TNimType* typ, NI size);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, selectWorker__TNxpaz54u9aohJtw68jPm4g)(tyObject_Worker__AqHEWWcw2VBFjoa2Hp8Akw* w, tyProc__fhqfcnDhIcLpBpSTVsWEZg fn, void* data);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, tryAcquire__5xsNGFOcntohPDtRyJ9bDxg)(pthread_mutex_t* lock);
static N_INLINE(NI, atomicInc__v6qORsZ9azlHHhOL1JYACRAsystem)(NI* memLoc, NI x);
N_LIB_PRIVATE N_NIMCALL(tyEnum_ThreadPoolAdvice__vD9cAMuSmfH29a9al5Q9cUZCig, advice__C0O6faaUOyXrzDKc9bL5ErA)(tyObject_ThreadPoolState__jN9benzGjAA9bryIHC1FGnZA* s);
N_LIB_PRIVATE N_NIMCALL(void, fvFinalizer__K4oPRfau4a7qgB6XHj2csA)(tyObject_FlowVarObj__wW8ek1vyLZa9a609brp8mWRg* fv);
static N_NIMCALL(void, Marker_tyRef__0I10e9asO9bQEvR5fHg7otnw)(void* p, NI op);
N_LIB_PRIVATE TNimType NTI__AqHEWWcw2VBFjoa2Hp8Akw_;
N_LIB_PRIVATE TNimType NTI__sx9abLHOwgGDBH9bpoqw2ezw_;
extern TNimType NTI__keOjwH3s9bnYBEeyteQLwbw_;
extern TNimType NTI__9bxnxao7MiiLOwO9aLAh9a3og_;
extern TNimType NTI__rR5Bzr1D5krxoo1NcNyeMA_;
N_LIB_PRIVATE TNimType NTI__fhqfcnDhIcLpBpSTVsWEZg_;
extern TNimType NTI__vr5DoT1jILTGdRlYv1OYpw_;
extern TNimType NTI__VaVACK0bpYmqIQ0mKcHfQQ_;
N_LIB_PRIVATE TNimType NTI__5COJP8EWIaAuXvZlDbQZmw_;
N_LIB_PRIVATE TNimType NTI__2PWyF6nokyTyhzmcY3ON3w_;
N_LIB_PRIVATE TNimType NTI__CyNApV6Mfiphj5eUnH5G1A_;
extern TNimType NTI__77mFvmsOLKik79ci2hXkHEg_;
STRING_LITERAL(TM__Qzgg5NBLvccay07XFph3Rw_5, "threadpool.nim(189, 12) `fv.ai.isNil` flowVar is still attached"
" to an \'blockUntilAny\'", 85);
extern TNimType NTI__ytyiCJqK439aF9cIibuRVpAg_;
N_LIB_PRIVATE TNimType NTI__0j3Tva7heDwa6msYUb9a4oA_;
N_LIB_PRIVATE TNimType NTI__InuzBj4ASNnb8C8ZpRzfbA_;
N_LIB_PRIVATE TNimType NTI__lFbunaQx9b6UMGaLkOEMqfQ_;
N_LIB_PRIVATE TNimType NTI__pNu0cief5ujI1ROVhZYW9cA_;
N_LIB_PRIVATE TNimType NTI__3fzl6uX4jyR8ftIyOu6qDA_;
extern TNimType NTI__AjV3cEUgs0Y9c7dCt9aItdIA_;
N_LIB_PRIVATE TNimType NTI__wW8ek1vyLZa9a609brp8mWRg_;
N_LIB_PRIVATE TNimType NTI__0I10e9asO9bQEvR5fHg7otnw_;
N_LIB_PRIVATE NI currentPoolSize__ErccdOg9batM6rAb3hYbfxA;
N_LIB_PRIVATE NI maxPoolSize__I5gWiq7COu2xfOvex9aGTWw;
N_LIB_PRIVATE NI minPoolSize__L9a7W9byTjVXeXKRg5OtqNTg = ((NI) 4);
N_LIB_PRIVATE tyObject_Semaphore__sx9abLHOwgGDBH9bpoqw2ezw gSomeReady__RyUdpNfPQUpKmQaHtWHYoA;
N_LIB_PRIVATE tyObject_Worker__AqHEWWcw2VBFjoa2Hp8Akw* readyWorker__BT69aUhVoxO4qq9b8EinSVNA;
N_LIB_PRIVATE pthread_mutex_t numSlavesLock__WtiE83BZa1NBG7G2g8ZnmA;
N_LIB_PRIVATE NI numSlavesRunning__ptIe6dS9bOnWPjIrLSfTasw;
N_LIB_PRIVATE NI numSlavesWaiting__fTOoJ83E0W3d2BkhxhQFwg;
N_LIB_PRIVATE NIM_THREADVAR NIM_BOOL isSlave__t9a8wsVVRYqGEKhg1vb49b3g;
N_LIB_PRIVATE tyArray__VzdKMWiVX55GSra4f1dzcQ workers__bezHuru9a1bEti2XBmfodvA;
N_LIB_PRIVATE tyArray__5sGw9aMSI320X9cbYIDJFEOQ workersData__R5YxoJYCt3PvKeJGhluUDQ;
N_LIB_PRIVATE tyArray__0x6EwkmjS0RXNUNMOfdG9cg distinguished__PEEgL9bODGVNNubj61abNQA;
N_LIB_PRIVATE tyArray__W9bX58rb2TvIPS9bAprPBVQg distinguishedData__Lqsi7ieuVktaO9acMSZyorQ;
N_LIB_PRIVATE tyObject_ThreadPoolState__jN9benzGjAA9bryIHC1FGnZA state__7PVqgO4qfT36l9bZ9a9cqhD9bA;
N_LIB_PRIVATE pthread_mutex_t stateLock__Of3qxka1C2uLE9anKCj52kA;
N_LIB_PRIVATE pthread_mutex_t distinguishedLock__lPmqsqhMalxIWA0zwhlpFg;
extern NIM_THREADVAR NIM_BOOL nimInErrorMode__759bT87luu8XGcbkw13FUjA;
static N_INLINE(void, initLock__Mz9ax9a7rBFxTQq0g0dLnxAwlocks)(pthread_mutex_t* lock) {
	pthread_mutex_init(lock, NIM_NIL);
}
static N_INLINE(void, initCond__7RIvB7pABFMIQe9bK9bZVqJglocks)(pthread_cond_t* cond) {
	pthread_cond_init(cond, NIM_NIL);
}
N_LIB_PRIVATE N_NIMCALL(void, initSemaphore__Bcnye583wFsPyzfpEXQ9cCg)(tyObject_Semaphore__sx9abLHOwgGDBH9bpoqw2ezw* cv) {
	initCond__7RIvB7pABFMIQe9bK9bZVqJglocks((&(*cv).c));
	initLock__Mz9ax9a7rBFxTQq0g0dLnxAwlocks((&(*cv).L));
}
static N_INLINE(NI, atomicDec__v6qORsZ9azlHHhOL1JYACRA_2system)(NI* memLoc, NI x) {
	NI result;
	result = (NI)0;
	result = __atomic_sub_fetch(memLoc, x, __ATOMIC_RELAXED);
	return result;
}
static N_INLINE(void, signal__7RIvB7pABFMIQe9bK9bZVqJg_2locks)(pthread_cond_t* cond) {
	pthread_cond_signal(cond);
}
N_LIB_PRIVATE N_NIMCALL(void, signal__Bcnye583wFsPyzfpEXQ9cCg_2)(tyObject_Semaphore__sx9abLHOwgGDBH9bpoqw2ezw* cv) {
	acquire__9bDG9bIkA6DtNcXVdL7bnLvg((&(*cv).L));
	(*cv).counter += ((NI) 1);
	release__9bDG9bIkA6DtNcXVdL7bnLvg_2((&(*cv).L));
	signal__7RIvB7pABFMIQe9bK9bZVqJg_2locks((&(*cv).c));
}
static N_INLINE(void, wait__AelMZFoEpIv2zok9a8VBM3glocks)(pthread_cond_t* cond, pthread_mutex_t* lock) {
	pthread_cond_wait(cond, lock);
}
N_LIB_PRIVATE N_NIMCALL(void, blockUntil__Bcnye583wFsPyzfpEXQ9cCg_3)(tyObject_Semaphore__sx9abLHOwgGDBH9bpoqw2ezw* cv) {
	acquire__9bDG9bIkA6DtNcXVdL7bnLvg((&(*cv).L));
	{
		while (1) {
			if (!((*cv).counter <= ((NI) 0))) goto LA2;
			wait__AelMZFoEpIv2zok9a8VBM3glocks((&(*cv).c), (&(*cv).L));
		} LA2: ;
	}
	(*cv).counter -= ((NI) 1);
	release__9bDG9bIkA6DtNcXVdL7bnLvg_2((&(*cv).L));
}
N_LIB_PRIVATE N_NIMCALL(void, cleanFlowVars__1yqYR9cLeffanOjn0piJ2VQ_2)(tyObject_Worker__AqHEWWcw2VBFjoa2Hp8Akw* w) {
	tyObject_ToFreeQueue__5COJP8EWIaAuXvZlDbQZmw* q;
	q = (&(*w).q);
	acquire__9bDG9bIkA6DtNcXVdL7bnLvg((&(*q).lock));
	{
		NI i;
		NI i_2;
		i = (NI)0;
		i_2 = ((NI) 0);
		{
			while (1) {
				if (!(i_2 < (*q).len)) goto LA3;
				i = i_2;
				if (((RootObj*) ((*q).data[(i)- 0]))) { nimGCunref(((RootObj*) ((*q).data[(i)- 0]))); }
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
	(*q).len = ((NI) 0);
	release__9bDG9bIkA6DtNcXVdL7bnLvg_2((&(*q).lock));
}
static N_INLINE(NIM_BOOL*, nimErrorFlag)(void) {
	NIM_BOOL* result;
	result = (NIM_BOOL*)0;
	result = (&nimInErrorMode__759bT87luu8XGcbkw13FUjA);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, slave__1yqYR9cLeffanOjn0piJ2VQ)(tyObject_Worker__AqHEWWcw2VBFjoa2Hp8Akw* w) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	isSlave__t9a8wsVVRYqGEKhg1vb49b3g = NIM_TRUE;
	{
		while (1) {
			{
				NI T7_;
				if (!(*w).shutdown) goto LA5_;
				(*w).shutdown = NIM_FALSE;
				T7_ = (NI)0;
				T7_ = atomicDec__v6qORsZ9azlHHhOL1JYACRA_2system((&currentPoolSize__ErccdOg9batM6rAb3hYbfxA), ((NI) 1));
				{
					while (1) {
						{
							if (!!(((*w).data == NIM_NIL))) goto LA12_;
							nossleep(((NI) 100));
						}
						goto LA10_;
						LA12_: ;
						{
							goto LA8;
						}
						LA10_: ;
					}
				} LA8: ;
				goto LA1;
			}
			LA5_: ;
			__atomic_store_n((&(*w).ready), NIM_TRUE, __ATOMIC_SEQ_CST);
			readyWorker__BT69aUhVoxO4qq9b8EinSVNA = w;
			signal__Bcnye583wFsPyzfpEXQ9cCg_2((&gSomeReady__RyUdpNfPQUpKmQaHtWHYoA));
			blockUntil__Bcnye583wFsPyzfpEXQ9cCg_3((&(*w).taskArrived));
			acquire__9bDG9bIkA6DtNcXVdL7bnLvg((&numSlavesLock__WtiE83BZa1NBG7G2g8ZnmA));
			numSlavesRunning__ptIe6dS9bOnWPjIrLSfTasw += ((NI) 1);
			{
				LA15_:;
			}
			{
				release__9bDG9bIkA6DtNcXVdL7bnLvg_2((&numSlavesLock__WtiE83BZa1NBG7G2g8ZnmA));
			}
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			(*w).f(((void*) (w)), (*w).data);
			acquire__9bDG9bIkA6DtNcXVdL7bnLvg((&numSlavesLock__WtiE83BZa1NBG7G2g8ZnmA));
			numSlavesRunning__ptIe6dS9bOnWPjIrLSfTasw -= ((NI) 1);
			{
				LA18_:;
			}
			{
				release__9bDG9bIkA6DtNcXVdL7bnLvg_2((&numSlavesLock__WtiE83BZa1NBG7G2g8ZnmA));
			}
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			{
				if (!!(((*w).q.len == ((NI) 0)))) goto LA23_;
				cleanFlowVars__1yqYR9cLeffanOjn0piJ2VQ_2(w);
			}
			LA23_: ;
		}
	} LA1: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NOINLINE(void, activateWorkerThread__oNQ43gcq37w6ZH7r69b8oag)(NI i) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	initSemaphore__Bcnye583wFsPyzfpEXQ9cCg((&workersData__R5YxoJYCt3PvKeJGhluUDQ[(i)- 0].taskArrived));
	initSemaphore__Bcnye583wFsPyzfpEXQ9cCg((&workersData__R5YxoJYCt3PvKeJGhluUDQ[(i)- 0].taskStarted));
	workersData__R5YxoJYCt3PvKeJGhluUDQ[(i)- 0].initialized = NIM_TRUE;
	initSemaphore__Bcnye583wFsPyzfpEXQ9cCg((&workersData__R5YxoJYCt3PvKeJGhluUDQ[(i)- 0].q.empty));
	initLock__Mz9ax9a7rBFxTQq0g0dLnxAwlocks((&workersData__R5YxoJYCt3PvKeJGhluUDQ[(i)- 0].q.lock));
	createThread__ZlRlGL9cCaGDCyoP82KIjPQ((&workers__bezHuru9a1bEti2XBmfodvA[(i)- 0]), slave__1yqYR9cLeffanOjn0piJ2VQ, (&workersData__R5YxoJYCt3PvKeJGhluUDQ[(i)- 0]));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, setup__WTnSSeVs19cfp5pRs6KBLXQ)(void) {
	NI p;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	p = ncpicountProcessors();
	currentPoolSize__ErccdOg9batM6rAb3hYbfxA = ((p <= ((NI) 256)) ? p : ((NI) 256));
	readyWorker__BT69aUhVoxO4qq9b8EinSVNA = (&workersData__R5YxoJYCt3PvKeJGhluUDQ[(((NI) 0))- 0]);
	{
		NI i;
		NI i_2;
		i = (NI)0;
		i_2 = ((NI) 0);
		{
			while (1) {
				if (!(i_2 < currentPoolSize__ErccdOg9batM6rAb3hYbfxA)) goto LA3;
				i = i_2;
				activateWorkerThread__oNQ43gcq37w6ZH7r69b8oag(i);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
	}BeforeRet_: ;
}
static N_INLINE(void, deinitCond__7RIvB7pABFMIQe9bK9bZVqJg_3locks)(pthread_cond_t* cond) {
	pthread_cond_destroy(cond);
}
static N_INLINE(void, deinitLock__Mz9ax9a7rBFxTQq0g0dLnxAw_2locks)(pthread_mutex_t* lock) {
	pthread_mutex_destroy(lock);
}
static N_INLINE(void, destroySemaphore__NTILssLLscGtKB8oC9bOaQwthreadpool)(tyObject_Semaphore__sx9abLHOwgGDBH9bpoqw2ezw* cv) {
	deinitCond__7RIvB7pABFMIQe9bK9bZVqJg_3locks((&(*cv).c));
	deinitLock__Mz9ax9a7rBFxTQq0g0dLnxAw_2locks((&(*cv).L));
}
N_LIB_PRIVATE N_NIMCALL(void, blockUntil__f7fvUPN27gapZAuCUIJwVA)(tyObject_FlowVarBaseObj__0j3Tva7heDwa6msYUb9a4oA* fv) {
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = (*fv).usesSemaphore;
		if (!(T3_)) goto LA4_;
		T3_ = !((*fv).awaited);
		LA4_: ;
		if (!T3_) goto LA5_;
		(*fv).awaited = NIM_TRUE;
		blockUntil__Bcnye583wFsPyzfpEXQ9cCg_3((&(*fv).cv));
		destroySemaphore__NTILssLLscGtKB8oC9bOaQwthreadpool((&(*fv).cv));
	}
	LA5_: ;
}
static N_INLINE(void, cpuRelax__RsY2eAkO9aEvlDhb7ZyRF8g_3system)(void) {
	asm volatile("pause" ::: "memory");
}
N_LIB_PRIVATE N_NIMCALL(void, colonanonymous___DNA2yPvg9bR9bzqSrU32jk3g)(void* w, void* a) {
	tyObject_Worker__AqHEWWcw2VBFjoa2Hp8Akw* w_2;
	w_2 = ((tyObject_Worker__AqHEWWcw2VBFjoa2Hp8Akw*) (w));
	cleanFlowVars__1yqYR9cLeffanOjn0piJ2VQ_2(w_2);
	signal__Bcnye583wFsPyzfpEXQ9cCg_2((&(*w_2).q.empty));
}
N_LIB_PRIVATE N_NIMCALL(void, wakeupWorkerToProcessQueue__1yqYR9cLeffanOjn0piJ2VQ_3)(tyObject_Worker__AqHEWWcw2VBFjoa2Hp8Akw* w) {
	{
		while (1) {
			NIM_BOOL T3_;
			T3_ = (NIM_BOOL)0;
			T3_ = cas__JJYX9aDJanv6Du380geRC5w((&(*w).ready), NIM_TRUE, NIM_FALSE);
			if (!!(T3_)) goto LA2;
			cpuRelax__RsY2eAkO9aEvlDhb7ZyRF8g_3system();
		} LA2: ;
	}
	(*w).data = NIM_NIL;
	(*w).f = colonanonymous___DNA2yPvg9bR9bzqSrU32jk3g;
	signal__Bcnye583wFsPyzfpEXQ9cCg_2((&(*w).taskArrived));
}
N_LIB_PRIVATE N_NIMCALL(void, finished__f7fvUPN27gapZAuCUIJwVA_2)(tyObject_FlowVarBaseObj__0j3Tva7heDwa6msYUb9a4oA* fv) {
	tyObject_Worker__AqHEWWcw2VBFjoa2Hp8Akw* owner;
	tyObject_ToFreeQueue__5COJP8EWIaAuXvZlDbQZmw* q;
{	{
		if (!!(((*fv).ai == 0))) goto LA3_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__Qzgg5NBLvccay07XFph3Rw_5));
	}
	LA3_: ;
	blockUntil__f7fvUPN27gapZAuCUIJwVA(fv);
	{
		if (!((*fv).data == 0)) goto LA7_;
		goto BeforeRet_;
	}
	LA7_: ;
	owner = ((tyObject_Worker__AqHEWWcw2VBFjoa2Hp8Akw*) ((*fv).owner));
	q = (&(*owner).q);
	acquire__9bDG9bIkA6DtNcXVdL7bnLvg((&(*q).lock));
	{
		while (1) {
			if (!!(((*q).len < ((NI) 128)))) goto LA10;
			release__9bDG9bIkA6DtNcXVdL7bnLvg_2((&(*q).lock));
			wakeupWorkerToProcessQueue__1yqYR9cLeffanOjn0piJ2VQ_3(owner);
			blockUntil__Bcnye583wFsPyzfpEXQ9cCg_3((&(*q).empty));
			acquire__9bDG9bIkA6DtNcXVdL7bnLvg((&(*q).lock));
		} LA10: ;
	}
	(*q).data[((*q).len)- 0] = ((void*) ((*fv).data));
	(*q).len += ((NI) 1);
	release__9bDG9bIkA6DtNcXVdL7bnLvg_2((&(*q).lock));
	(*fv).data = NIM_NIL;
	(*owner).data = NIM_NIL;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, roof___ygtJ2etAIR9anioqk0X9cZYw)(tyObject_FlowVarObj__pNu0cief5ujI1ROVhZYW9cA* fv) {
	NimStringDesc* result;
	tyObject_FlowVarBaseObj__0j3Tva7heDwa6msYUb9a4oA* T1_;
	NimStringDesc* src;
	tyObject_FlowVarBaseObj__0j3Tva7heDwa6msYUb9a4oA* T2_;
	result = (NimStringDesc*)0;
	T1_ = (tyObject_FlowVarBaseObj__0j3Tva7heDwa6msYUb9a4oA*)0;
	T1_ = &fv->Sup;
	blockUntil__f7fvUPN27gapZAuCUIJwVA(T1_);
	src = ((NimStringDesc*) ((*fv).Sup.data));
	genericSeqDeepCopy((&result), src, (&NTI__77mFvmsOLKik79ci2hXkHEg_));
	T2_ = (tyObject_FlowVarBaseObj__0j3Tva7heDwa6msYUb9a4oA*)0;
	T2_ = &fv->Sup;
	finished__f7fvUPN27gapZAuCUIJwVA_2(T2_);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, fvFinalizer__lBnghJJMgLodZOwAl3k1AA)(tyObject_FlowVarObj__pNu0cief5ujI1ROVhZYW9cA* fv) {
	tyObject_FlowVarBaseObj__0j3Tva7heDwa6msYUb9a4oA* T1_;
	T1_ = (tyObject_FlowVarBaseObj__0j3Tva7heDwa6msYUb9a4oA*)0;
	T1_ = &fv->Sup;
	finished__f7fvUPN27gapZAuCUIJwVA_2(T1_);
}
static N_NIMCALL(void, Marker_tyRef__3fzl6uX4jyR8ftIyOu6qDA)(void* p, NI op) {
	tyObject_FlowVarObj__pNu0cief5ujI1ROVhZYW9cA* a;
	NI T1_;
	NI T2_;
	a = (tyObject_FlowVarObj__pNu0cief5ujI1ROVhZYW9cA*)p;
	T1_ = (NI)0;
	T2_ = (NI)0;
	nimGCvisit((void*)(*a).blob, op);
}
N_LIB_PRIVATE N_NIMCALL(tyObject_FlowVarObj__pNu0cief5ujI1ROVhZYW9cA*, nimCreateFlowVar__iJXuPxHBxQQmUuv4M8HqBA)(void) {
	tyObject_FlowVarObj__pNu0cief5ujI1ROVhZYW9cA* result;
	result = (tyObject_FlowVarObj__pNu0cief5ujI1ROVhZYW9cA*)0;
	result = (tyObject_FlowVarObj__pNu0cief5ujI1ROVhZYW9cA*) newObj((&NTI__3fzl6uX4jyR8ftIyOu6qDA_), sizeof(tyObject_FlowVarObj__pNu0cief5ujI1ROVhZYW9cA));
	(*result).Sup.Sup.m_type = (&NTI__pNu0cief5ujI1ROVhZYW9cA_);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, nimFlowVarCreateSemaphore)(tyObject_FlowVarBaseObj__0j3Tva7heDwa6msYUb9a4oA* fv) {
	initSemaphore__Bcnye583wFsPyzfpEXQ9cCg((&(*fv).cv));
	(*fv).usesSemaphore = NIM_TRUE;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, selectWorker__TNxpaz54u9aohJtw68jPm4g)(tyObject_Worker__AqHEWWcw2VBFjoa2Hp8Akw* w, tyProc__fhqfcnDhIcLpBpSTVsWEZg fn, void* data) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = cas__JJYX9aDJanv6Du380geRC5w((&(*w).ready), NIM_TRUE, NIM_FALSE);
		if (!T3_) goto LA4_;
		(*w).data = data;
		(*w).f = fn;
		signal__Bcnye583wFsPyzfpEXQ9cCg_2((&(*w).taskArrived));
		blockUntil__Bcnye583wFsPyzfpEXQ9cCg_3((&(*w).taskStarted));
		result = NIM_TRUE;
	}
	LA4_: ;
	return result;
}
static N_INLINE(NI, atomicInc__v6qORsZ9azlHHhOL1JYACRAsystem)(NI* memLoc, NI x) {
	NI result;
	result = (NI)0;
	result = __atomic_add_fetch(memLoc, x, __ATOMIC_RELAXED);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, nimSpawn3)(tyProc__fhqfcnDhIcLpBpSTVsWEZg fn, void* data) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		while (1) {
			{
				NIM_BOOL T5_;
				T5_ = (NIM_BOOL)0;
				T5_ = selectWorker__TNxpaz54u9aohJtw68jPm4g(readyWorker__BT69aUhVoxO4qq9b8EinSVNA, fn, data);
				if (!T5_) goto LA6_;
				goto BeforeRet_;
			}
			LA6_: ;
			{
				NI i;
				NI i_2;
				i = (NI)0;
				i_2 = ((NI) 0);
				{
					while (1) {
						if (!(i_2 < currentPoolSize__ErccdOg9batM6rAb3hYbfxA)) goto LA10;
						i = i_2;
						{
							NIM_BOOL T13_;
							T13_ = (NIM_BOOL)0;
							T13_ = selectWorker__TNxpaz54u9aohJtw68jPm4g((&workersData__R5YxoJYCt3PvKeJGhluUDQ[(i)- 0]), fn, data);
							if (!T13_) goto LA14_;
							goto BeforeRet_;
						}
						LA14_: ;
						i_2 += ((NI) 1);
					} LA10: ;
				}
			}
			{
				NIM_BOOL T18_;
				T18_ = (NIM_BOOL)0;
				T18_ = (state__7PVqgO4qfT36l9bZ9a9cqhD9bA.calls < maxPoolSize__I5gWiq7COu2xfOvex9aGTWw);
				if (T18_) goto LA19_;
				T18_ = ((NI)(state__7PVqgO4qfT36l9bZ9a9cqhD9bA.calls & ((NI) 127)) == ((NI) 0));
				LA19_: ;
				if (!T18_) goto LA20_;
				{
					NIM_BOOL T24_;
					tyEnum_ThreadPoolAdvice__vD9cAMuSmfH29a9al5Q9cUZCig T41_;
					T24_ = (NIM_BOOL)0;
					T24_ = tryAcquire__5xsNGFOcntohPDtRyJ9bDxg((&stateLock__Of3qxka1C2uLE9anKCj52kA));
					if (!T24_) goto LA25_;
					{
						tyObject_Worker__AqHEWWcw2VBFjoa2Hp8Akw* w;
						NI T35_;
						if (!(currentPoolSize__ErccdOg9batM6rAb3hYbfxA < minPoolSize__L9a7W9byTjVXeXKRg5OtqNTg)) goto LA29_;
						{
							if (!!(workersData__R5YxoJYCt3PvKeJGhluUDQ[(currentPoolSize__ErccdOg9batM6rAb3hYbfxA)- 0].initialized)) goto LA33_;
							activateWorkerThread__oNQ43gcq37w6ZH7r69b8oag(currentPoolSize__ErccdOg9batM6rAb3hYbfxA);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						}
						LA33_: ;
						w = (&workersData__R5YxoJYCt3PvKeJGhluUDQ[(currentPoolSize__ErccdOg9batM6rAb3hYbfxA)- 0]);
						T35_ = (NI)0;
						T35_ = atomicInc__v6qORsZ9azlHHhOL1JYACRAsystem((&currentPoolSize__ErccdOg9batM6rAb3hYbfxA), ((NI) 1));
						{
							NIM_BOOL T38_;
							T38_ = (NIM_BOOL)0;
							T38_ = selectWorker__TNxpaz54u9aohJtw68jPm4g(w, fn, data);
							if (!T38_) goto LA39_;
							release__9bDG9bIkA6DtNcXVdL7bnLvg_2((&stateLock__Of3qxka1C2uLE9anKCj52kA));
							goto BeforeRet_;
						}
						LA39_: ;
					}
					LA29_: ;
					T41_ = (tyEnum_ThreadPoolAdvice__vD9cAMuSmfH29a9al5Q9cUZCig)0;
					T41_ = advice__C0O6faaUOyXrzDKc9bL5ErA((&state__7PVqgO4qfT36l9bZ9a9cqhD9bA));
					switch (T41_) {
					case ((tyEnum_ThreadPoolAdvice__vD9cAMuSmfH29a9al5Q9cUZCig) 0):
					{
					}
					break;
					case ((tyEnum_ThreadPoolAdvice__vD9cAMuSmfH29a9al5Q9cUZCig) 1):
					{
						{
							tyObject_Worker__AqHEWWcw2VBFjoa2Hp8Akw* w_2;
							NI T52_;
							if (!(currentPoolSize__ErccdOg9batM6rAb3hYbfxA < maxPoolSize__I5gWiq7COu2xfOvex9aGTWw)) goto LA46_;
							{
								if (!!(workersData__R5YxoJYCt3PvKeJGhluUDQ[(currentPoolSize__ErccdOg9batM6rAb3hYbfxA)- 0].initialized)) goto LA50_;
								activateWorkerThread__oNQ43gcq37w6ZH7r69b8oag(currentPoolSize__ErccdOg9batM6rAb3hYbfxA);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							}
							LA50_: ;
							w_2 = (&workersData__R5YxoJYCt3PvKeJGhluUDQ[(currentPoolSize__ErccdOg9batM6rAb3hYbfxA)- 0]);
							T52_ = (NI)0;
							T52_ = atomicInc__v6qORsZ9azlHHhOL1JYACRAsystem((&currentPoolSize__ErccdOg9batM6rAb3hYbfxA), ((NI) 1));
							{
								NIM_BOOL T55_;
								T55_ = (NIM_BOOL)0;
								T55_ = selectWorker__TNxpaz54u9aohJtw68jPm4g(w_2, fn, data);
								if (!T55_) goto LA56_;
								release__9bDG9bIkA6DtNcXVdL7bnLvg_2((&stateLock__Of3qxka1C2uLE9anKCj52kA));
								goto BeforeRet_;
							}
							LA56_: ;
						}
						LA46_: ;
					}
					break;
					case ((tyEnum_ThreadPoolAdvice__vD9cAMuSmfH29a9al5Q9cUZCig) 2):
					{
						{
							tyObject_Worker__AqHEWWcw2VBFjoa2Hp8Akw* w_3;
							if (!(minPoolSize__L9a7W9byTjVXeXKRg5OtqNTg < currentPoolSize__ErccdOg9batM6rAb3hYbfxA)) goto LA61_;
							w_3 = (&workersData__R5YxoJYCt3PvKeJGhluUDQ[((NI)(currentPoolSize__ErccdOg9batM6rAb3hYbfxA - ((NI) 1)))- 0]);
							(*w_3).shutdown = NIM_TRUE;
						}
						LA61_: ;
					}
					break;
					}
					release__9bDG9bIkA6DtNcXVdL7bnLvg_2((&stateLock__Of3qxka1C2uLE9anKCj52kA));
				}
				LA25_: ;
			}
			LA20_: ;
			{
				if (!isSlave__t9a8wsVVRYqGEKhg1vb49b3g) goto LA65_;
				acquire__9bDG9bIkA6DtNcXVdL7bnLvg((&numSlavesLock__WtiE83BZa1NBG7G2g8ZnmA));
				{
					if (!(numSlavesRunning__ptIe6dS9bOnWPjIrLSfTasw <= (NI)(numSlavesWaiting__fTOoJ83E0W3d2BkhxhQFwg + ((NI) 1)))) goto LA70_;
					{
						tyObject_Worker__AqHEWWcw2VBFjoa2Hp8Akw* w_4;
						NI T80_;
						if (!(currentPoolSize__ErccdOg9batM6rAb3hYbfxA < maxPoolSize__I5gWiq7COu2xfOvex9aGTWw)) goto LA74_;
						{
							if (!!(workersData__R5YxoJYCt3PvKeJGhluUDQ[(currentPoolSize__ErccdOg9batM6rAb3hYbfxA)- 0].initialized)) goto LA78_;
							activateWorkerThread__oNQ43gcq37w6ZH7r69b8oag(currentPoolSize__ErccdOg9batM6rAb3hYbfxA);
							if (NIM_UNLIKELY(*nimErr_)) goto LA67_;
						}
						LA78_: ;
						w_4 = (&workersData__R5YxoJYCt3PvKeJGhluUDQ[(currentPoolSize__ErccdOg9batM6rAb3hYbfxA)- 0]);
						T80_ = (NI)0;
						T80_ = atomicInc__v6qORsZ9azlHHhOL1JYACRAsystem((&currentPoolSize__ErccdOg9batM6rAb3hYbfxA), ((NI) 1));
						{
							NIM_BOOL T83_;
							T83_ = (NIM_BOOL)0;
							T83_ = selectWorker__TNxpaz54u9aohJtw68jPm4g(w_4, fn, data);
							if (!T83_) goto LA84_;
							release__9bDG9bIkA6DtNcXVdL7bnLvg_2((&numSlavesLock__WtiE83BZa1NBG7G2g8ZnmA));
							goto BeforeRet_;
						}
						LA84_: ;
					}
					goto LA72_;
					LA74_: ;
					{
					}
					LA72_: ;
				}
				LA70_: ;
				numSlavesWaiting__fTOoJ83E0W3d2BkhxhQFwg += ((NI) 1);
				{
					LA67_:;
				}
				{
					release__9bDG9bIkA6DtNcXVdL7bnLvg_2((&numSlavesLock__WtiE83BZa1NBG7G2g8ZnmA));
				}
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			LA65_: ;
			blockUntil__Bcnye583wFsPyzfpEXQ9cCg_3((&gSomeReady__RyUdpNfPQUpKmQaHtWHYoA));
			{
				if (!isSlave__t9a8wsVVRYqGEKhg1vb49b3g) goto LA91_;
				acquire__9bDG9bIkA6DtNcXVdL7bnLvg((&numSlavesLock__WtiE83BZa1NBG7G2g8ZnmA));
				numSlavesWaiting__fTOoJ83E0W3d2BkhxhQFwg -= ((NI) 1);
				{
					LA93_:;
				}
				{
					release__9bDG9bIkA6DtNcXVdL7bnLvg_2((&numSlavesLock__WtiE83BZa1NBG7G2g8ZnmA));
				}
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			LA91_: ;
		}
	}
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, nimArgsPassingDone)(void* p) {
	tyObject_Worker__AqHEWWcw2VBFjoa2Hp8Akw* w;
	w = ((tyObject_Worker__AqHEWWcw2VBFjoa2Hp8Akw*) (p));
	signal__Bcnye583wFsPyzfpEXQ9cCg_2((&(*w).taskStarted));
}
N_LIB_PRIVATE N_NIMCALL(void, nimFlowVarSignal)(tyObject_FlowVarBaseObj__0j3Tva7heDwa6msYUb9a4oA* fv) {
	{
		if (!!(((*fv).ai == NIM_NIL))) goto LA3_;
		acquire__9bDG9bIkA6DtNcXVdL7bnLvg((&(*(*fv).ai).cv.L));
		(*(*fv).ai).idx = (*fv).idx;
		(*(*fv).ai).cv.counter += ((NI) 1);
		release__9bDG9bIkA6DtNcXVdL7bnLvg_2((&(*(*fv).ai).cv.L));
		signal__7RIvB7pABFMIQe9bK9bZVqJg_2locks((&(*(*fv).ai).cv.c));
	}
	LA3_: ;
	{
		if (!(*fv).usesSemaphore) goto LA7_;
		signal__Bcnye583wFsPyzfpEXQ9cCg_2((&(*fv).cv));
	}
	LA7_: ;
}
N_LIB_PRIVATE N_NIMCALL(tySequence__AjV3cEUgs0Y9c7dCt9aItdIA*, roof___ehrGUUAhxPe9bXYMmATESCA)(tyObject_FlowVarObj__wW8ek1vyLZa9a609brp8mWRg* fv) {
	tySequence__AjV3cEUgs0Y9c7dCt9aItdIA* result;
	tyObject_FlowVarBaseObj__0j3Tva7heDwa6msYUb9a4oA* T1_;
	tySequence__AjV3cEUgs0Y9c7dCt9aItdIA* src;
	tyObject_FlowVarBaseObj__0j3Tva7heDwa6msYUb9a4oA* T2_;
	result = (tySequence__AjV3cEUgs0Y9c7dCt9aItdIA*)0;
	T1_ = (tyObject_FlowVarBaseObj__0j3Tva7heDwa6msYUb9a4oA*)0;
	T1_ = &fv->Sup;
	blockUntil__f7fvUPN27gapZAuCUIJwVA(T1_);
	src = ((tySequence__AjV3cEUgs0Y9c7dCt9aItdIA*) ((*fv).Sup.data));
	genericSeqDeepCopy((&result), src, (&NTI__AjV3cEUgs0Y9c7dCt9aItdIA_));
	T2_ = (tyObject_FlowVarBaseObj__0j3Tva7heDwa6msYUb9a4oA*)0;
	T2_ = &fv->Sup;
	finished__f7fvUPN27gapZAuCUIJwVA_2(T2_);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, fvFinalizer__K4oPRfau4a7qgB6XHj2csA)(tyObject_FlowVarObj__wW8ek1vyLZa9a609brp8mWRg* fv) {
	tyObject_FlowVarBaseObj__0j3Tva7heDwa6msYUb9a4oA* T1_;
	T1_ = (tyObject_FlowVarBaseObj__0j3Tva7heDwa6msYUb9a4oA*)0;
	T1_ = &fv->Sup;
	finished__f7fvUPN27gapZAuCUIJwVA_2(T1_);
}
static N_NIMCALL(void, Marker_tyRef__0I10e9asO9bQEvR5fHg7otnw)(void* p, NI op) {
	tyObject_FlowVarObj__wW8ek1vyLZa9a609brp8mWRg* a;
	NI T1_;
	NI T2_;
	a = (tyObject_FlowVarObj__wW8ek1vyLZa9a609brp8mWRg*)p;
	T1_ = (NI)0;
	T2_ = (NI)0;
	nimGCvisit((void*)(*a).blob, op);
}
N_LIB_PRIVATE N_NIMCALL(tyObject_FlowVarObj__wW8ek1vyLZa9a609brp8mWRg*, nimCreateFlowVar__x6KMwYtxjKw3rYK3t5fMgA)(void) {
	tyObject_FlowVarObj__wW8ek1vyLZa9a609brp8mWRg* result;
	result = (tyObject_FlowVarObj__wW8ek1vyLZa9a609brp8mWRg*)0;
	result = (tyObject_FlowVarObj__wW8ek1vyLZa9a609brp8mWRg*) newObj((&NTI__0I10e9asO9bQEvR5fHg7otnw_), sizeof(tyObject_FlowVarObj__wW8ek1vyLZa9a609brp8mWRg));
	(*result).Sup.Sup.m_type = (&NTI__wW8ek1vyLZa9a609brp8mWRg_);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, stdlib_threadpoolInit000)(void) {
{
NIM_BOOL* nimErr_;
nimErr_ = nimErrorFlag();
	maxPoolSize__I5gWiq7COu2xfOvex9aGTWw = ((NI) 256);
	initLock__Mz9ax9a7rBFxTQq0g0dLnxAwlocks((&numSlavesLock__WtiE83BZa1NBG7G2g8ZnmA));
	initSemaphore__Bcnye583wFsPyzfpEXQ9cCg((&gSomeReady__RyUdpNfPQUpKmQaHtWHYoA));
	initLock__Mz9ax9a7rBFxTQq0g0dLnxAwlocks((&stateLock__Of3qxka1C2uLE9anKCj52kA));
	initLock__Mz9ax9a7rBFxTQq0g0dLnxAwlocks((&distinguishedLock__lPmqsqhMalxIWA0zwhlpFg));
	setup__WTnSSeVs19cfp5pRs6KBLXQ();
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	BeforeRet_: ;
}
}

N_LIB_PRIVATE N_NIMCALL(void, stdlib_threadpoolDatInit000)(void) {
static TNimNode* TM__Qzgg5NBLvccay07XFph3Rw_2_9[9];
static TNimNode* TM__Qzgg5NBLvccay07XFph3Rw_3_3[3];
static TNimNode* TM__Qzgg5NBLvccay07XFph3Rw_4_4[4];
static TNimNode* TM__Qzgg5NBLvccay07XFph3Rw_6_8[8];
static TNimNode* TM__Qzgg5NBLvccay07XFph3Rw_7_2[2];
static TNimNode TM__Qzgg5NBLvccay07XFph3Rw_0[33];
NTI__AqHEWWcw2VBFjoa2Hp8Akw_.size = sizeof(tyObject_Worker__AqHEWWcw2VBFjoa2Hp8Akw);
NTI__AqHEWWcw2VBFjoa2Hp8Akw_.kind = 18;
NTI__AqHEWWcw2VBFjoa2Hp8Akw_.base = 0;
NTI__AqHEWWcw2VBFjoa2Hp8Akw_.flags = 3;
TM__Qzgg5NBLvccay07XFph3Rw_2_9[0] = &TM__Qzgg5NBLvccay07XFph3Rw_0[1];
NTI__sx9abLHOwgGDBH9bpoqw2ezw_.size = sizeof(tyObject_Semaphore__sx9abLHOwgGDBH9bpoqw2ezw);
NTI__sx9abLHOwgGDBH9bpoqw2ezw_.kind = 18;
NTI__sx9abLHOwgGDBH9bpoqw2ezw_.base = 0;
NTI__sx9abLHOwgGDBH9bpoqw2ezw_.flags = 3;
TM__Qzgg5NBLvccay07XFph3Rw_3_3[0] = &TM__Qzgg5NBLvccay07XFph3Rw_0[3];
TM__Qzgg5NBLvccay07XFph3Rw_0[3].kind = 1;
TM__Qzgg5NBLvccay07XFph3Rw_0[3].offset = offsetof(tyObject_Semaphore__sx9abLHOwgGDBH9bpoqw2ezw, c);
TM__Qzgg5NBLvccay07XFph3Rw_0[3].typ = (&NTI__keOjwH3s9bnYBEeyteQLwbw_);
TM__Qzgg5NBLvccay07XFph3Rw_0[3].name = "c";
TM__Qzgg5NBLvccay07XFph3Rw_3_3[1] = &TM__Qzgg5NBLvccay07XFph3Rw_0[4];
TM__Qzgg5NBLvccay07XFph3Rw_0[4].kind = 1;
TM__Qzgg5NBLvccay07XFph3Rw_0[4].offset = offsetof(tyObject_Semaphore__sx9abLHOwgGDBH9bpoqw2ezw, L);
TM__Qzgg5NBLvccay07XFph3Rw_0[4].typ = (&NTI__9bxnxao7MiiLOwO9aLAh9a3og_);
TM__Qzgg5NBLvccay07XFph3Rw_0[4].name = "L";
TM__Qzgg5NBLvccay07XFph3Rw_3_3[2] = &TM__Qzgg5NBLvccay07XFph3Rw_0[5];
TM__Qzgg5NBLvccay07XFph3Rw_0[5].kind = 1;
TM__Qzgg5NBLvccay07XFph3Rw_0[5].offset = offsetof(tyObject_Semaphore__sx9abLHOwgGDBH9bpoqw2ezw, counter);
TM__Qzgg5NBLvccay07XFph3Rw_0[5].typ = (&NTI__rR5Bzr1D5krxoo1NcNyeMA_);
TM__Qzgg5NBLvccay07XFph3Rw_0[5].name = "counter";
TM__Qzgg5NBLvccay07XFph3Rw_0[2].len = 3; TM__Qzgg5NBLvccay07XFph3Rw_0[2].kind = 2; TM__Qzgg5NBLvccay07XFph3Rw_0[2].sons = &TM__Qzgg5NBLvccay07XFph3Rw_3_3[0];
NTI__sx9abLHOwgGDBH9bpoqw2ezw_.node = &TM__Qzgg5NBLvccay07XFph3Rw_0[2];
TM__Qzgg5NBLvccay07XFph3Rw_0[1].kind = 1;
TM__Qzgg5NBLvccay07XFph3Rw_0[1].offset = offsetof(tyObject_Worker__AqHEWWcw2VBFjoa2Hp8Akw, taskArrived);
TM__Qzgg5NBLvccay07XFph3Rw_0[1].typ = (&NTI__sx9abLHOwgGDBH9bpoqw2ezw_);
TM__Qzgg5NBLvccay07XFph3Rw_0[1].name = "taskArrived";
TM__Qzgg5NBLvccay07XFph3Rw_2_9[1] = &TM__Qzgg5NBLvccay07XFph3Rw_0[6];
TM__Qzgg5NBLvccay07XFph3Rw_0[6].kind = 1;
TM__Qzgg5NBLvccay07XFph3Rw_0[6].offset = offsetof(tyObject_Worker__AqHEWWcw2VBFjoa2Hp8Akw, taskStarted);
TM__Qzgg5NBLvccay07XFph3Rw_0[6].typ = (&NTI__sx9abLHOwgGDBH9bpoqw2ezw_);
TM__Qzgg5NBLvccay07XFph3Rw_0[6].name = "taskStarted";
TM__Qzgg5NBLvccay07XFph3Rw_2_9[2] = &TM__Qzgg5NBLvccay07XFph3Rw_0[7];
NTI__fhqfcnDhIcLpBpSTVsWEZg_.size = sizeof(tyProc__fhqfcnDhIcLpBpSTVsWEZg);
NTI__fhqfcnDhIcLpBpSTVsWEZg_.kind = 25;
NTI__fhqfcnDhIcLpBpSTVsWEZg_.base = 0;
NTI__fhqfcnDhIcLpBpSTVsWEZg_.flags = 3;
TM__Qzgg5NBLvccay07XFph3Rw_0[7].kind = 1;
TM__Qzgg5NBLvccay07XFph3Rw_0[7].offset = offsetof(tyObject_Worker__AqHEWWcw2VBFjoa2Hp8Akw, f);
TM__Qzgg5NBLvccay07XFph3Rw_0[7].typ = (&NTI__fhqfcnDhIcLpBpSTVsWEZg_);
TM__Qzgg5NBLvccay07XFph3Rw_0[7].name = "f";
TM__Qzgg5NBLvccay07XFph3Rw_2_9[3] = &TM__Qzgg5NBLvccay07XFph3Rw_0[8];
TM__Qzgg5NBLvccay07XFph3Rw_0[8].kind = 1;
TM__Qzgg5NBLvccay07XFph3Rw_0[8].offset = offsetof(tyObject_Worker__AqHEWWcw2VBFjoa2Hp8Akw, data);
TM__Qzgg5NBLvccay07XFph3Rw_0[8].typ = (&NTI__vr5DoT1jILTGdRlYv1OYpw_);
TM__Qzgg5NBLvccay07XFph3Rw_0[8].name = "data";
TM__Qzgg5NBLvccay07XFph3Rw_2_9[4] = &TM__Qzgg5NBLvccay07XFph3Rw_0[9];
TM__Qzgg5NBLvccay07XFph3Rw_0[9].kind = 1;
TM__Qzgg5NBLvccay07XFph3Rw_0[9].offset = offsetof(tyObject_Worker__AqHEWWcw2VBFjoa2Hp8Akw, ready);
TM__Qzgg5NBLvccay07XFph3Rw_0[9].typ = (&NTI__VaVACK0bpYmqIQ0mKcHfQQ_);
TM__Qzgg5NBLvccay07XFph3Rw_0[9].name = "ready";
TM__Qzgg5NBLvccay07XFph3Rw_2_9[5] = &TM__Qzgg5NBLvccay07XFph3Rw_0[10];
TM__Qzgg5NBLvccay07XFph3Rw_0[10].kind = 1;
TM__Qzgg5NBLvccay07XFph3Rw_0[10].offset = offsetof(tyObject_Worker__AqHEWWcw2VBFjoa2Hp8Akw, initialized);
TM__Qzgg5NBLvccay07XFph3Rw_0[10].typ = (&NTI__VaVACK0bpYmqIQ0mKcHfQQ_);
TM__Qzgg5NBLvccay07XFph3Rw_0[10].name = "initialized";
TM__Qzgg5NBLvccay07XFph3Rw_2_9[6] = &TM__Qzgg5NBLvccay07XFph3Rw_0[11];
TM__Qzgg5NBLvccay07XFph3Rw_0[11].kind = 1;
TM__Qzgg5NBLvccay07XFph3Rw_0[11].offset = offsetof(tyObject_Worker__AqHEWWcw2VBFjoa2Hp8Akw, shutdown);
TM__Qzgg5NBLvccay07XFph3Rw_0[11].typ = (&NTI__VaVACK0bpYmqIQ0mKcHfQQ_);
TM__Qzgg5NBLvccay07XFph3Rw_0[11].name = "shutdown";
TM__Qzgg5NBLvccay07XFph3Rw_2_9[7] = &TM__Qzgg5NBLvccay07XFph3Rw_0[12];
NTI__5COJP8EWIaAuXvZlDbQZmw_.size = sizeof(tyObject_ToFreeQueue__5COJP8EWIaAuXvZlDbQZmw);
NTI__5COJP8EWIaAuXvZlDbQZmw_.kind = 18;
NTI__5COJP8EWIaAuXvZlDbQZmw_.base = 0;
NTI__5COJP8EWIaAuXvZlDbQZmw_.flags = 3;
TM__Qzgg5NBLvccay07XFph3Rw_4_4[0] = &TM__Qzgg5NBLvccay07XFph3Rw_0[14];
TM__Qzgg5NBLvccay07XFph3Rw_0[14].kind = 1;
TM__Qzgg5NBLvccay07XFph3Rw_0[14].offset = offsetof(tyObject_ToFreeQueue__5COJP8EWIaAuXvZlDbQZmw, len);
TM__Qzgg5NBLvccay07XFph3Rw_0[14].typ = (&NTI__rR5Bzr1D5krxoo1NcNyeMA_);
TM__Qzgg5NBLvccay07XFph3Rw_0[14].name = "len";
TM__Qzgg5NBLvccay07XFph3Rw_4_4[1] = &TM__Qzgg5NBLvccay07XFph3Rw_0[15];
TM__Qzgg5NBLvccay07XFph3Rw_0[15].kind = 1;
TM__Qzgg5NBLvccay07XFph3Rw_0[15].offset = offsetof(tyObject_ToFreeQueue__5COJP8EWIaAuXvZlDbQZmw, lock);
TM__Qzgg5NBLvccay07XFph3Rw_0[15].typ = (&NTI__9bxnxao7MiiLOwO9aLAh9a3og_);
TM__Qzgg5NBLvccay07XFph3Rw_0[15].name = "lock";
TM__Qzgg5NBLvccay07XFph3Rw_4_4[2] = &TM__Qzgg5NBLvccay07XFph3Rw_0[16];
TM__Qzgg5NBLvccay07XFph3Rw_0[16].kind = 1;
TM__Qzgg5NBLvccay07XFph3Rw_0[16].offset = offsetof(tyObject_ToFreeQueue__5COJP8EWIaAuXvZlDbQZmw, empty);
TM__Qzgg5NBLvccay07XFph3Rw_0[16].typ = (&NTI__sx9abLHOwgGDBH9bpoqw2ezw_);
TM__Qzgg5NBLvccay07XFph3Rw_0[16].name = "empty";
TM__Qzgg5NBLvccay07XFph3Rw_4_4[3] = &TM__Qzgg5NBLvccay07XFph3Rw_0[17];
NTI__2PWyF6nokyTyhzmcY3ON3w_.size = sizeof(tyArray__2PWyF6nokyTyhzmcY3ON3w);
NTI__2PWyF6nokyTyhzmcY3ON3w_.kind = 16;
NTI__2PWyF6nokyTyhzmcY3ON3w_.base = (&NTI__vr5DoT1jILTGdRlYv1OYpw_);
NTI__2PWyF6nokyTyhzmcY3ON3w_.flags = 3;
TM__Qzgg5NBLvccay07XFph3Rw_0[17].kind = 1;
TM__Qzgg5NBLvccay07XFph3Rw_0[17].offset = offsetof(tyObject_ToFreeQueue__5COJP8EWIaAuXvZlDbQZmw, data);
TM__Qzgg5NBLvccay07XFph3Rw_0[17].typ = (&NTI__2PWyF6nokyTyhzmcY3ON3w_);
TM__Qzgg5NBLvccay07XFph3Rw_0[17].name = "data";
TM__Qzgg5NBLvccay07XFph3Rw_0[13].len = 4; TM__Qzgg5NBLvccay07XFph3Rw_0[13].kind = 2; TM__Qzgg5NBLvccay07XFph3Rw_0[13].sons = &TM__Qzgg5NBLvccay07XFph3Rw_4_4[0];
NTI__5COJP8EWIaAuXvZlDbQZmw_.node = &TM__Qzgg5NBLvccay07XFph3Rw_0[13];
TM__Qzgg5NBLvccay07XFph3Rw_0[12].kind = 1;
TM__Qzgg5NBLvccay07XFph3Rw_0[12].offset = offsetof(tyObject_Worker__AqHEWWcw2VBFjoa2Hp8Akw, q);
TM__Qzgg5NBLvccay07XFph3Rw_0[12].typ = (&NTI__5COJP8EWIaAuXvZlDbQZmw_);
TM__Qzgg5NBLvccay07XFph3Rw_0[12].name = "q";
TM__Qzgg5NBLvccay07XFph3Rw_2_9[8] = &TM__Qzgg5NBLvccay07XFph3Rw_0[18];
TM__Qzgg5NBLvccay07XFph3Rw_0[18].kind = 1;
TM__Qzgg5NBLvccay07XFph3Rw_0[18].offset = offsetof(tyObject_Worker__AqHEWWcw2VBFjoa2Hp8Akw, readyForTask);
TM__Qzgg5NBLvccay07XFph3Rw_0[18].typ = (&NTI__sx9abLHOwgGDBH9bpoqw2ezw_);
TM__Qzgg5NBLvccay07XFph3Rw_0[18].name = "readyForTask";
TM__Qzgg5NBLvccay07XFph3Rw_0[0].len = 9; TM__Qzgg5NBLvccay07XFph3Rw_0[0].kind = 2; TM__Qzgg5NBLvccay07XFph3Rw_0[0].sons = &TM__Qzgg5NBLvccay07XFph3Rw_2_9[0];
NTI__AqHEWWcw2VBFjoa2Hp8Akw_.node = &TM__Qzgg5NBLvccay07XFph3Rw_0[0];
NTI__CyNApV6Mfiphj5eUnH5G1A_.size = sizeof(tyObject_Worker__AqHEWWcw2VBFjoa2Hp8Akw*);
NTI__CyNApV6Mfiphj5eUnH5G1A_.kind = 21;
NTI__CyNApV6Mfiphj5eUnH5G1A_.base = (&NTI__AqHEWWcw2VBFjoa2Hp8Akw_);
NTI__CyNApV6Mfiphj5eUnH5G1A_.flags = 3;
NTI__0j3Tva7heDwa6msYUb9a4oA_.size = sizeof(tyObject_FlowVarBaseObj__0j3Tva7heDwa6msYUb9a4oA);
NTI__0j3Tva7heDwa6msYUb9a4oA_.kind = 17;
NTI__0j3Tva7heDwa6msYUb9a4oA_.base = (&NTI__ytyiCJqK439aF9cIibuRVpAg_);
NTI__0j3Tva7heDwa6msYUb9a4oA_.flags = 1;
TM__Qzgg5NBLvccay07XFph3Rw_6_8[0] = &TM__Qzgg5NBLvccay07XFph3Rw_0[20];
TM__Qzgg5NBLvccay07XFph3Rw_0[20].kind = 1;
TM__Qzgg5NBLvccay07XFph3Rw_0[20].offset = offsetof(tyObject_FlowVarBaseObj__0j3Tva7heDwa6msYUb9a4oA, ready);
TM__Qzgg5NBLvccay07XFph3Rw_0[20].typ = (&NTI__VaVACK0bpYmqIQ0mKcHfQQ_);
TM__Qzgg5NBLvccay07XFph3Rw_0[20].name = "ready";
TM__Qzgg5NBLvccay07XFph3Rw_6_8[1] = &TM__Qzgg5NBLvccay07XFph3Rw_0[21];
TM__Qzgg5NBLvccay07XFph3Rw_0[21].kind = 1;
TM__Qzgg5NBLvccay07XFph3Rw_0[21].offset = offsetof(tyObject_FlowVarBaseObj__0j3Tva7heDwa6msYUb9a4oA, usesSemaphore);
TM__Qzgg5NBLvccay07XFph3Rw_0[21].typ = (&NTI__VaVACK0bpYmqIQ0mKcHfQQ_);
TM__Qzgg5NBLvccay07XFph3Rw_0[21].name = "usesSemaphore";
TM__Qzgg5NBLvccay07XFph3Rw_6_8[2] = &TM__Qzgg5NBLvccay07XFph3Rw_0[22];
TM__Qzgg5NBLvccay07XFph3Rw_0[22].kind = 1;
TM__Qzgg5NBLvccay07XFph3Rw_0[22].offset = offsetof(tyObject_FlowVarBaseObj__0j3Tva7heDwa6msYUb9a4oA, awaited);
TM__Qzgg5NBLvccay07XFph3Rw_0[22].typ = (&NTI__VaVACK0bpYmqIQ0mKcHfQQ_);
TM__Qzgg5NBLvccay07XFph3Rw_0[22].name = "awaited";
TM__Qzgg5NBLvccay07XFph3Rw_6_8[3] = &TM__Qzgg5NBLvccay07XFph3Rw_0[23];
TM__Qzgg5NBLvccay07XFph3Rw_0[23].kind = 1;
TM__Qzgg5NBLvccay07XFph3Rw_0[23].offset = offsetof(tyObject_FlowVarBaseObj__0j3Tva7heDwa6msYUb9a4oA, cv);
TM__Qzgg5NBLvccay07XFph3Rw_0[23].typ = (&NTI__sx9abLHOwgGDBH9bpoqw2ezw_);
TM__Qzgg5NBLvccay07XFph3Rw_0[23].name = "cv";
TM__Qzgg5NBLvccay07XFph3Rw_6_8[4] = &TM__Qzgg5NBLvccay07XFph3Rw_0[24];
NTI__InuzBj4ASNnb8C8ZpRzfbA_.size = sizeof(tyObject_AwaitInfo__InuzBj4ASNnb8C8ZpRzfbA);
NTI__InuzBj4ASNnb8C8ZpRzfbA_.kind = 18;
NTI__InuzBj4ASNnb8C8ZpRzfbA_.base = 0;
NTI__InuzBj4ASNnb8C8ZpRzfbA_.flags = 3;
TM__Qzgg5NBLvccay07XFph3Rw_7_2[0] = &TM__Qzgg5NBLvccay07XFph3Rw_0[26];
TM__Qzgg5NBLvccay07XFph3Rw_0[26].kind = 1;
TM__Qzgg5NBLvccay07XFph3Rw_0[26].offset = offsetof(tyObject_AwaitInfo__InuzBj4ASNnb8C8ZpRzfbA, cv);
TM__Qzgg5NBLvccay07XFph3Rw_0[26].typ = (&NTI__sx9abLHOwgGDBH9bpoqw2ezw_);
TM__Qzgg5NBLvccay07XFph3Rw_0[26].name = "cv";
TM__Qzgg5NBLvccay07XFph3Rw_7_2[1] = &TM__Qzgg5NBLvccay07XFph3Rw_0[27];
TM__Qzgg5NBLvccay07XFph3Rw_0[27].kind = 1;
TM__Qzgg5NBLvccay07XFph3Rw_0[27].offset = offsetof(tyObject_AwaitInfo__InuzBj4ASNnb8C8ZpRzfbA, idx);
TM__Qzgg5NBLvccay07XFph3Rw_0[27].typ = (&NTI__rR5Bzr1D5krxoo1NcNyeMA_);
TM__Qzgg5NBLvccay07XFph3Rw_0[27].name = "idx";
TM__Qzgg5NBLvccay07XFph3Rw_0[25].len = 2; TM__Qzgg5NBLvccay07XFph3Rw_0[25].kind = 2; TM__Qzgg5NBLvccay07XFph3Rw_0[25].sons = &TM__Qzgg5NBLvccay07XFph3Rw_7_2[0];
NTI__InuzBj4ASNnb8C8ZpRzfbA_.node = &TM__Qzgg5NBLvccay07XFph3Rw_0[25];
NTI__lFbunaQx9b6UMGaLkOEMqfQ_.size = sizeof(tyObject_AwaitInfo__InuzBj4ASNnb8C8ZpRzfbA*);
NTI__lFbunaQx9b6UMGaLkOEMqfQ_.kind = 21;
NTI__lFbunaQx9b6UMGaLkOEMqfQ_.base = (&NTI__InuzBj4ASNnb8C8ZpRzfbA_);
NTI__lFbunaQx9b6UMGaLkOEMqfQ_.flags = 3;
TM__Qzgg5NBLvccay07XFph3Rw_0[24].kind = 1;
TM__Qzgg5NBLvccay07XFph3Rw_0[24].offset = offsetof(tyObject_FlowVarBaseObj__0j3Tva7heDwa6msYUb9a4oA, ai);
TM__Qzgg5NBLvccay07XFph3Rw_0[24].typ = (&NTI__lFbunaQx9b6UMGaLkOEMqfQ_);
TM__Qzgg5NBLvccay07XFph3Rw_0[24].name = "ai";
TM__Qzgg5NBLvccay07XFph3Rw_6_8[5] = &TM__Qzgg5NBLvccay07XFph3Rw_0[28];
TM__Qzgg5NBLvccay07XFph3Rw_0[28].kind = 1;
TM__Qzgg5NBLvccay07XFph3Rw_0[28].offset = offsetof(tyObject_FlowVarBaseObj__0j3Tva7heDwa6msYUb9a4oA, idx);
TM__Qzgg5NBLvccay07XFph3Rw_0[28].typ = (&NTI__rR5Bzr1D5krxoo1NcNyeMA_);
TM__Qzgg5NBLvccay07XFph3Rw_0[28].name = "idx";
TM__Qzgg5NBLvccay07XFph3Rw_6_8[6] = &TM__Qzgg5NBLvccay07XFph3Rw_0[29];
TM__Qzgg5NBLvccay07XFph3Rw_0[29].kind = 1;
TM__Qzgg5NBLvccay07XFph3Rw_0[29].offset = offsetof(tyObject_FlowVarBaseObj__0j3Tva7heDwa6msYUb9a4oA, data);
TM__Qzgg5NBLvccay07XFph3Rw_0[29].typ = (&NTI__vr5DoT1jILTGdRlYv1OYpw_);
TM__Qzgg5NBLvccay07XFph3Rw_0[29].name = "data";
TM__Qzgg5NBLvccay07XFph3Rw_6_8[7] = &TM__Qzgg5NBLvccay07XFph3Rw_0[30];
TM__Qzgg5NBLvccay07XFph3Rw_0[30].kind = 1;
TM__Qzgg5NBLvccay07XFph3Rw_0[30].offset = offsetof(tyObject_FlowVarBaseObj__0j3Tva7heDwa6msYUb9a4oA, owner);
TM__Qzgg5NBLvccay07XFph3Rw_0[30].typ = (&NTI__vr5DoT1jILTGdRlYv1OYpw_);
TM__Qzgg5NBLvccay07XFph3Rw_0[30].name = "owner";
TM__Qzgg5NBLvccay07XFph3Rw_0[19].len = 8; TM__Qzgg5NBLvccay07XFph3Rw_0[19].kind = 2; TM__Qzgg5NBLvccay07XFph3Rw_0[19].sons = &TM__Qzgg5NBLvccay07XFph3Rw_6_8[0];
NTI__0j3Tva7heDwa6msYUb9a4oA_.node = &TM__Qzgg5NBLvccay07XFph3Rw_0[19];
NTI__pNu0cief5ujI1ROVhZYW9cA_.size = sizeof(tyObject_FlowVarObj__pNu0cief5ujI1ROVhZYW9cA);
NTI__pNu0cief5ujI1ROVhZYW9cA_.kind = 17;
NTI__pNu0cief5ujI1ROVhZYW9cA_.base = (&NTI__0j3Tva7heDwa6msYUb9a4oA_);
TM__Qzgg5NBLvccay07XFph3Rw_0[31].kind = 1;
TM__Qzgg5NBLvccay07XFph3Rw_0[31].offset = offsetof(tyObject_FlowVarObj__pNu0cief5ujI1ROVhZYW9cA, blob);
TM__Qzgg5NBLvccay07XFph3Rw_0[31].typ = (&NTI__77mFvmsOLKik79ci2hXkHEg_);
TM__Qzgg5NBLvccay07XFph3Rw_0[31].name = "blob";
NTI__pNu0cief5ujI1ROVhZYW9cA_.node = &TM__Qzgg5NBLvccay07XFph3Rw_0[31];
NTI__3fzl6uX4jyR8ftIyOu6qDA_.size = sizeof(tyObject_FlowVarObj__pNu0cief5ujI1ROVhZYW9cA*);
NTI__3fzl6uX4jyR8ftIyOu6qDA_.kind = 22;
NTI__3fzl6uX4jyR8ftIyOu6qDA_.base = (&NTI__pNu0cief5ujI1ROVhZYW9cA_);
NTI__3fzl6uX4jyR8ftIyOu6qDA_.marker = Marker_tyRef__3fzl6uX4jyR8ftIyOu6qDA;
(&NTI__3fzl6uX4jyR8ftIyOu6qDA_)->finalizer = (void*)fvFinalizer__lBnghJJMgLodZOwAl3k1AA;
NTI__wW8ek1vyLZa9a609brp8mWRg_.size = sizeof(tyObject_FlowVarObj__wW8ek1vyLZa9a609brp8mWRg);
NTI__wW8ek1vyLZa9a609brp8mWRg_.kind = 17;
NTI__wW8ek1vyLZa9a609brp8mWRg_.base = (&NTI__0j3Tva7heDwa6msYUb9a4oA_);
TM__Qzgg5NBLvccay07XFph3Rw_0[32].kind = 1;
TM__Qzgg5NBLvccay07XFph3Rw_0[32].offset = offsetof(tyObject_FlowVarObj__wW8ek1vyLZa9a609brp8mWRg, blob);
TM__Qzgg5NBLvccay07XFph3Rw_0[32].typ = (&NTI__AjV3cEUgs0Y9c7dCt9aItdIA_);
TM__Qzgg5NBLvccay07XFph3Rw_0[32].name = "blob";
NTI__wW8ek1vyLZa9a609brp8mWRg_.node = &TM__Qzgg5NBLvccay07XFph3Rw_0[32];
NTI__0I10e9asO9bQEvR5fHg7otnw_.size = sizeof(tyObject_FlowVarObj__wW8ek1vyLZa9a609brp8mWRg*);
NTI__0I10e9asO9bQEvR5fHg7otnw_.kind = 22;
NTI__0I10e9asO9bQEvR5fHg7otnw_.base = (&NTI__wW8ek1vyLZa9a609brp8mWRg_);
NTI__0I10e9asO9bQEvR5fHg7otnw_.marker = Marker_tyRef__0I10e9asO9bQEvR5fHg7otnw;
(&NTI__0I10e9asO9bQEvR5fHg7otnw_)->finalizer = (void*)fvFinalizer__K4oPRfau4a7qgB6XHj2csA;
}

