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

/* section: NIM_merge_HEADERS */

#include "nimbase.h"
#include <string.h>
#include <windows.h>
#include <stdio.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

/* section: NIM_merge_FRAME_DEFINES */
#define nimfr_(x, y)
#define nimln_(x, y)

/* section: NIM_merge_FORWARD_TYPES */
typedef struct tyObject_PyModuleDesc__gBC8z6Ez5xj3dXoP0ylCRA tyObject_PyModuleDesc__gBC8z6Ez5xj3dXoP0ylCRA;
typedef struct tySequence__E2XyP5e7Jr9aMpJMjdz5Tkg tySequence__E2XyP5e7Jr9aMpJMjdz5Tkg;
typedef struct tySequence__1Ib9a4sxiw4YCYbDTADLEsg tySequence__1Ib9a4sxiw4YCYbDTADLEsg;
typedef struct tySequence__xxWWYOndkW9adiM61bZkvsg tySequence__xxWWYOndkW9adiM61bZkvsg;
typedef struct TNimType TNimType;
typedef struct TNimNode TNimNode;
typedef struct TGenericSeq TGenericSeq;
typedef struct tyObject_PyMethodDef__9aWi1PsmvCuTKIYDHHnhfcw tyObject_PyMethodDef__9aWi1PsmvCuTKIYDHHnhfcw;
typedef struct tyObject_PyTypeDesc__BKCcJxogshNojOoN23Qfbg tyObject_PyTypeDesc__BKCcJxogshNojOoN23Qfbg;
typedef struct NimStringDesc NimStringDesc;
typedef struct tyObject_PyTypeObject3Obj__cRsC9bGvH9bX6A9aVx8UB6I5g tyObject_PyTypeObject3Obj__cRsC9bGvH9bX6A9aVx8UB6I5g;
typedef struct tySequence__mAI4KvRAgoko9bmrV4QRgaQ tySequence__mAI4KvRAgoko9bmrV4QRgaQ;
typedef struct tyObject_PyMemberDef__WC29aEeHi2Pdy9c4AkllcBTg tyObject_PyMemberDef__WC29aEeHi2Pdy9c4AkllcBTg;
typedef struct tyObject_PyIteratorDesc__3Lh9c29bpC2Iomkl9cQO9cGqEw tyObject_PyIteratorDesc__3Lh9c29bpC2Iomkl9cQO9cGqEw;
typedef struct tyObject_PyLibcolonObjectType___bTw708kK89b8Vj9cmSu9a4zig tyObject_PyLibcolonObjectType___bTw708kK89b8Vj9cmSu9a4zig;
typedef struct tyObject_RawPyBuffer__0qyRdSZKtLACJ1u4qMMP2w tyObject_RawPyBuffer__0qyRdSZKtLACJ1u4qMMP2w;
typedef struct tyObject_Complex__zWadV1X9aMO7qS9bsQFB0JFA tyObject_Complex__zWadV1X9aMO7qS9bsQFB0JFA;
typedef struct tyObject_GcThread__hgJQSlfXDOK3SwSHjeZBXg tyObject_GcThread__hgJQSlfXDOK3SwSHjeZBXg;
typedef struct Exception Exception;
typedef struct RootObj RootObj;
typedef struct tySequence__uB9b75OUPRENsBAu4AnoePA tySequence__uB9b75OUPRENsBAu4AnoePA;
typedef struct tyObject_PyObjectVarHeadObj__5fAkl5kIcYJNl6VvYzZdMw tyObject_PyObjectVarHeadObj__5fAkl5kIcYJNl6VvYzZdMw;
typedef struct tyObject_PyObjectObj__aD5pkFWInXrZXinZ42cDEg tyObject_PyObjectObj__aD5pkFWInXrZXinZ42cDEg;
typedef struct tyObject_PyNimObjectcolonObjectType___EzO9cx6qeJIOpzFHShySXxA tyObject_PyNimObjectcolonObjectType___EzO9cx6qeJIOpzFHShySXxA;
typedef struct tyObject_PyObject_HEAD_EXTRA__AZfyXx4FzGJVoO01VjoS9cw tyObject_PyObject_HEAD_EXTRA__AZfyXx4FzGJVoO01VjoS9cw;
typedef struct tyObject_PyIteratorObj__GqRpYj9a7yzFP1C6hQf7QBQ tyObject_PyIteratorObj__GqRpYj9a7yzFP1C6hQf7QBQ;
typedef struct tyObject_PyIterRefcolonObjectType___d9bsBVvwpaMgkPbcqU7T9apw tyObject_PyIterRefcolonObjectType___d9bsBVvwpaMgkPbcqU7T9apw;
typedef struct tyObject_PyModuleDef__QZDAPlXtpUM7Y9asxNBUBwg tyObject_PyModuleDef__QZDAPlXtpUM7Y9asxNBUBwg;
typedef struct tyObject_PyModuleDef_Base__rlCDhfYMTJl9bANneNOHAGQ tyObject_PyModuleDef_Base__rlCDhfYMTJl9bANneNOHAGQ;
typedef struct tyObject_PyModuleDef_Slot__vPt0O09cLIJL9aVVlDCzVeRA tyObject_PyModuleDef_Slot__vPt0O09cLIJL9aVVlDCzVeRA;
typedef struct tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ;
typedef struct tyObject_GcStack__7fytPA5bBsob6See21YMRA tyObject_GcStack__7fytPA5bBsob6See21YMRA;
typedef struct tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w;
typedef struct tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g;
typedef struct tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg;
typedef struct tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ;
typedef struct tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg;
typedef struct tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw;
typedef struct tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA;
typedef struct tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw;
typedef struct tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw;
typedef struct tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg;
typedef struct tyTuple__ujsjpB2O9cjj3uDHsXbnSzg tyTuple__ujsjpB2O9cjj3uDHsXbnSzg;
typedef struct tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg;
typedef struct tyObject_SharedList__JI9cx34TL8n3aOKF6tSMBUw tyObject_SharedList__JI9cx34TL8n3aOKF6tSMBUw;
typedef struct tyObject_SharedListNodecolonObjectType___KGw0YAw6W9aSz3Sr9aXGu7zg tyObject_SharedListNodecolonObjectType___KGw0YAw6W9aSz3Sr9aXGu7zg;
typedef struct tyObject_AssertionDefect__PtYxPmY5X0dorfvxAFbJpQ tyObject_AssertionDefect__PtYxPmY5X0dorfvxAFbJpQ;
typedef struct tyObject_Defect__LbeSGvgPzGzXnW9caIkJqMA tyObject_Defect__LbeSGvgPzGzXnW9caIkJqMA;
typedef struct tySequence__4eQHGndY6XBYpFOH09apV8Q tySequence__4eQHGndY6XBYpFOH09apV8Q;
typedef struct tyTuple__hbPS8r7C9a0SBVkFBnwt1Ww tyTuple__hbPS8r7C9a0SBVkFBnwt1Ww;
typedef struct tyTuple__UV3llMMYFckfui8YMBuUZA tyTuple__UV3llMMYFckfui8YMBuUZA;
typedef struct tyObject_Table__Ji6x6JQ0gVMaFr8AIk18Ug tyObject_Table__Ji6x6JQ0gVMaFr8AIk18Ug;
typedef struct tySequence__SFipDZIkFtPcrLs0AGBBjQ tySequence__SFipDZIkFtPcrLs0AGBBjQ;
typedef struct tyTuple__8ZxhPt1NwfElsJs8zUSV9bg tyTuple__8ZxhPt1NwfElsJs8zUSV9bg;
typedef struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ tySequence__sM4lkSb7zS6F7OVMvW9cffQ;
typedef struct tySequence__AjV3cEUgs0Y9c7dCt9aItdIA tySequence__AjV3cEUgs0Y9c7dCt9aItdIA;
typedef struct tyObject_XmlNodeObj__X79bE2j9a1V7tizbx9blALudQ tyObject_XmlNodeObj__X79bE2j9a1V7tizbx9blALudQ;
typedef struct tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA;
typedef struct tySequence__aNpJjaoUowCQc7fBn3wtDQ tySequence__aNpJjaoUowCQc7fBn3wtDQ;
typedef struct TSafePoint TSafePoint;
typedef struct GcFrameHeader GcFrameHeader;
typedef struct tyObject_TimezonecolonObjectType___F8OvqlxXyGXRSiK9c1fCDVw tyObject_TimezonecolonObjectType___F8OvqlxXyGXRSiK9c1fCDVw;
typedef struct tyObject_PDispatchercolonObjectType___mNiwh37MfaAP9cG4kqT6kpg tyObject_PDispatchercolonObjectType___mNiwh37MfaAP9cG4kqT6kpg;
typedef struct tyObject_SslContextcolonObjectType___nNdejAl9bbVbX7sP6RJ4h0w tyObject_SslContextcolonObjectType___nNdejAl9bbVbX7sP6RJ4h0w;

/* section: NIM_merge_TYPES */
struct tyObject_PyModuleDesc__gBC8z6Ez5xj3dXoP0ylCRA {
NCSTRING name;
NCSTRING doc;
tySequence__E2XyP5e7Jr9aMpJMjdz5Tkg* methods;
tySequence__1Ib9a4sxiw4YCYbDTADLEsg* types;
tySequence__xxWWYOndkW9adiM61bZkvsg* iterators;
};
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;
NI align;
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;
};
typedef N_CDECL_PTR(void*, tyProc__uQWqJp3WAx8fOY1h9aCwjIg) (void* s, void* a, void* k);
struct tyObject_PyMethodDef__9aWi1PsmvCuTKIYDHHnhfcw {
NCSTRING ml_name;
tyProc__uQWqJp3WAx8fOY1h9aCwjIg ml_meth;
int ml_flags;
NCSTRING ml_doc;
};
struct NimStringDesc {
  TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
typedef N_CDECL_PTR(void*, tyProc__eYT4U6bGFqFBUxk9b15mfOA) (tyObject_PyTypeObject3Obj__cRsC9bGvH9bX6A9aVx8UB6I5g* typ, void* a, void* b);
struct tyObject_PyTypeDesc__BKCcJxogshNojOoN23Qfbg {
tyObject_PyModuleDesc__gBC8z6Ez5xj3dXoP0ylCRA* module;
NCSTRING name;
NCSTRING doc;
NimStringDesc* fullName;
tyProc__eYT4U6bGFqFBUxk9b15mfOA newFunc;
tySequence__E2XyP5e7Jr9aMpJMjdz5Tkg* methods;
tySequence__mAI4KvRAgoko9bmrV4QRgaQ* members;
NI origSize;
};
struct tyObject_PyMemberDef__WC29aEeHi2Pdy9c4AkllcBTg {
NCSTRING name;
int typ;
NI offset;
int flags;
NCSTRING doc;
};
struct tyObject_PyIteratorDesc__3Lh9c29bpC2Iomkl9cQO9cGqEw {
NCSTRING name;
NCSTRING doc;
tyProc__eYT4U6bGFqFBUxk9b15mfOA newFunc;
};
typedef N_CDECL_PTR(void*, tyProc__SsjMo29bx9bP5kwe2xgM3Scg) (NCSTRING f, ...);
typedef N_CDECL_PTR(void*, tyProc__4wJmT85lsn175X0dPNQv7w) (NI sz);
typedef N_CDECL_PTR(NI, tyProc__YRQqZC12s3573tRGP8MV3g) (void* f);
typedef N_CDECL_PTR(void*, tyProc__oPIasAghCTvCKmvkMeB1xQ) (void* f, NI i);
typedef N_CDECL_PTR(int, tyProc__6slETyyIDJuDOSqkO0hUXA) (void* f, NI i, void* v);
typedef N_CDECL_PTR(int, tyProc__tgpXIILGoVcO9bvYnz9azTVQ) (tyObject_PyTypeObject3Obj__cRsC9bGvH9bX6A9aVx8UB6I5g* f);
typedef N_CDECL_PTR(int, tyProc__T08W9bgbY4bOv2q64h6irpw) (void* m, NCSTRING n, void* o);
typedef N_CDECL_PTR(int, tyProc__fbYpjfe38x3ujjAmVRbI1Q) (void* o);
typedef N_CDECL_PTR(void*, tyProc__YezmFzxOOyM9cb11Eoq1Elg) (void* o, NCSTRING name);
typedef N_CDECL_PTR(void*, tyProc__jvPpjMAkI9bwM1B9apOphnlA) (void* o);
typedef N_CDECL_PTR(void*, tyProc__VQ1ysQk017myXMGb79cPTVw) (void* o, void* k);
typedef N_CDECL_PTR(int, tyProc__7LMjBc4zOHVIsNdulNv7QQ) (void* o, void* k, void* v);
typedef N_CDECL_PTR(int, tyProc__eoRP3F9aLT3mtHj6OkcMSyQ) (void* a, void* b, int op);
typedef N_CDECL_PTR(int, tyProc__8hR9arLDkUs9ag3Pt9bWtjfsg) (void* o, tyObject_RawPyBuffer__0qyRdSZKtLACJ1u4qMMP2w* b, int flags);
typedef N_CDECL_PTR(void, tyProc__vFvpnKOere9bRFN9czzMRlTA) (tyObject_RawPyBuffer__0qyRdSZKtLACJ1u4qMMP2w* b);
typedef N_CDECL_PTR(void*, tyProc__BZ6N5NNdHcK05FTDxQbEWw) (NCSTRING name, void* base, void* dict);
typedef N_CDECL_PTR(NI64, tyProc__mIlNZ9aGaphVJCyIIofK8mg) (void* l);
typedef N_CDECL_PTR(double, tyProc__2su9b9chqHYibM7sMkbSaSkA) (void* l);
typedef N_CDECL_PTR(void*, tyProc__RKlUmjvtmKGnc01PbvZaRQ) (long v);
typedef N_CDECL_PTR(int, tyProc__i2exZ7Vtp648U9crOFcq9beQ) (tyObject_PyTypeObject3Obj__cRsC9bGvH9bX6A9aVx8UB6I5g* t1, tyObject_PyTypeObject3Obj__cRsC9bGvH9bX6A9aVx8UB6I5g* t2);
struct tyObject_Complex__zWadV1X9aMO7qS9bsQFB0JFA {
NF re;
NF im;
};
typedef N_CDECL_PTR(tyObject_Complex__zWadV1X9aMO7qS9bsQFB0JFA, tyProc__N1A5ZvDSgO9c9aRXmVqfn9bAw) (void* op);
typedef N_CDECL_PTR(int, tyProc__3FKLKFzOaK7FD6dRLWM6Jw) (void* o, NIM_CHAR** s, NI* len);
typedef N_CDECL_PTR(void*, tyProc__YDKrw1adv61oVQkQhbYyaA) (NCSTRING s);
typedef N_CDECL_PTR(int, tyProc__B2MjSeo07a72ynTQRVYFKw) (void* o, NCSTRING s);
typedef N_CDECL_PTR(NCSTRING, tyProc__p1X2BwWx9a3wsChhykvf29aA) (void* o);
typedef N_CDECL_PTR(void*, tyProc__NzboHqZVJcbdtVGYrOosXQ) (void);
typedef N_CDECL_PTR(int, tyProc__MTei9bsKjha0o1cISO9aLMDg) (void* o, void* k);
typedef N_NIMCALL_PTR(void, tyProc__4SVlZZPmetqBimNsH9cHcOA) (void* o);
typedef N_CDECL_PTR(void, tyProc__ln4kdL5W9bbX4a1xl8nnVXQ) (void);
typedef N_CDECL_PTR(void, tyProc__WYY8i0I79agBofnUcEGCfig) (void* o, NCSTRING s);
typedef N_CDECL_PTR(void, tyProc__32w2ZypAyMWuajvi2Jt79cg) (void* o);
typedef N_CDECL_PTR(void*, tyProc__jcEovQ2rZUNUsYxohT50Ug) (void* p, NCSTRING name, tyProc__32w2ZypAyMWuajvi2Jt79cg destr);
typedef N_CDECL_PTR(void*, tyProc__9b2qzlf3LCKK0JvThQT1atg) (tyObject_PyMethodDef__9aWi1PsmvCuTKIYDHHnhfcw* md, void* self, void* module);
typedef N_CDECL_PTR(void, tyProc__U0oVFt576Ze44Q9a3eZc5wg) (void** ptype, void** pvalue, void** ptraceback);
struct tyObject_PyLibcolonObjectType___bTw708kK89b8Vj9cmSu9a4zig {
void* module;
tyProc__SsjMo29bx9bP5kwe2xgM3Scg Py_BuildValue;
tyProc__4wJmT85lsn175X0dPNQv7w PyTuple_New;
tyProc__YRQqZC12s3573tRGP8MV3g PyTuple_Size;
tyProc__oPIasAghCTvCKmvkMeB1xQ PyTuple_GetItem;
tyProc__6slETyyIDJuDOSqkO0hUXA PyTuple_SetItem;
void* Py_None;
tyProc__tgpXIILGoVcO9bvYnz9azTVQ PyType_Ready;
tyProc__eYT4U6bGFqFBUxk9b15mfOA PyType_GenericNew;
tyProc__T08W9bgbY4bOv2q64h6irpw PyModule_AddObject;
tyProc__4wJmT85lsn175X0dPNQv7w PyList_New;
tyProc__YRQqZC12s3573tRGP8MV3g PyList_Size;
tyProc__oPIasAghCTvCKmvkMeB1xQ PyList_GetItem;
tyProc__6slETyyIDJuDOSqkO0hUXA PyList_SetItem;
tyProc__uQWqJp3WAx8fOY1h9aCwjIg PyObject_Call;
tyProc__fbYpjfe38x3ujjAmVRbI1Q PyObject_IsTrue;
tyProc__YezmFzxOOyM9cb11Eoq1Elg PyObject_GetAttrString;
tyProc__T08W9bgbY4bOv2q64h6irpw PyObject_SetAttrString;
tyProc__jvPpjMAkI9bwM1B9apOphnlA PyObject_Dir;
tyProc__jvPpjMAkI9bwM1B9apOphnlA PyObject_Str;
tyProc__jvPpjMAkI9bwM1B9apOphnlA PyObject_GetIter;
tyProc__VQ1ysQk017myXMGb79cPTVw PyObject_GetItem;
tyProc__7LMjBc4zOHVIsNdulNv7QQ PyObject_SetItem;
tyProc__eoRP3F9aLT3mtHj6OkcMSyQ PyObject_RichCompareBool;
tyProc__8hR9arLDkUs9ag3Pt9bWtjfsg PyObject_GetBuffer;
tyProc__vFvpnKOere9bRFN9czzMRlTA PyBuffer_Release;
tyProc__BZ6N5NNdHcK05FTDxQbEWw PyErr_NewException;
tyProc__jvPpjMAkI9bwM1B9apOphnlA PyIter_Next;
tyProc__mIlNZ9aGaphVJCyIIofK8mg PyLong_AsLongLong;
tyProc__2su9b9chqHYibM7sMkbSaSkA PyFloat_AsDouble;
tyProc__RKlUmjvtmKGnc01PbvZaRQ PyBool_FromLong;
tyObject_PyTypeObject3Obj__cRsC9bGvH9bX6A9aVx8UB6I5g* PyBool_Type;
tyObject_PyTypeObject3Obj__cRsC9bGvH9bX6A9aVx8UB6I5g* PyFloat_Type;
tyObject_PyTypeObject3Obj__cRsC9bGvH9bX6A9aVx8UB6I5g* PyComplex_Type;
tyObject_PyTypeObject3Obj__cRsC9bGvH9bX6A9aVx8UB6I5g* PyCapsule_Type;
tyObject_PyTypeObject3Obj__cRsC9bGvH9bX6A9aVx8UB6I5g* PyTuple_Type;
tyObject_PyTypeObject3Obj__cRsC9bGvH9bX6A9aVx8UB6I5g* PyList_Type;
tyObject_PyTypeObject3Obj__cRsC9bGvH9bX6A9aVx8UB6I5g* PyBytes_Type;
tyObject_PyTypeObject3Obj__cRsC9bGvH9bX6A9aVx8UB6I5g* PyUnicode_Type;
tyProc__i2exZ7Vtp648U9crOFcq9beQ PyType_IsSubtype;
tyProc__N1A5ZvDSgO9c9aRXmVqfn9bAw PyComplex_AsCComplex;
tyProc__2su9b9chqHYibM7sMkbSaSkA PyComplex_RealAsDouble;
tyProc__2su9b9chqHYibM7sMkbSaSkA PyComplex_ImagAsDouble;
tyProc__jvPpjMAkI9bwM1B9apOphnlA PyUnicode_AsUTF8String;
tyProc__3FKLKFzOaK7FD6dRLWM6Jw PyBytes_AsStringAndSize;
tyProc__YDKrw1adv61oVQkQhbYyaA PyUnicode_FromString;
tyProc__B2MjSeo07a72ynTQRVYFKw PyUnicode_CompareWithASCIIString;
tyProc__p1X2BwWx9a3wsChhykvf29aA PyString_AsString;
tyObject_PyTypeObject3Obj__cRsC9bGvH9bX6A9aVx8UB6I5g* PyDict_Type;
tyProc__NzboHqZVJcbdtVGYrOosXQ PyDict_New;
tyProc__YRQqZC12s3573tRGP8MV3g PyDict_Size;
tyProc__YezmFzxOOyM9cb11Eoq1Elg PyDict_GetItemString;
tyProc__T08W9bgbY4bOv2q64h6irpw PyDict_SetItemString;
tyProc__VQ1ysQk017myXMGb79cPTVw PyDict_GetItem;
tyProc__7LMjBc4zOHVIsNdulNv7QQ PyDict_SetItem;
tyProc__jvPpjMAkI9bwM1B9apOphnlA PyDict_Keys;
tyProc__jvPpjMAkI9bwM1B9apOphnlA PyDict_Values;
tyProc__MTei9bsKjha0o1cISO9aLMDg PyDict_Contains;
tyProc__4SVlZZPmetqBimNsH9cHcOA PyDealloc;
tyProc__ln4kdL5W9bbX4a1xl8nnVXQ PyErr_Clear;
tyProc__WYY8i0I79agBofnUcEGCfig PyErr_SetString;
tyProc__NzboHqZVJcbdtVGYrOosXQ PyErr_Occurred;
void* PyExc_TypeError;
tyProc__jcEovQ2rZUNUsYxohT50Ug PyCapsule_New;
tyProc__YezmFzxOOyM9cb11Eoq1Elg PyCapsule_GetPointer;
tyProc__YDKrw1adv61oVQkQhbYyaA PyImport_ImportModule;
tyProc__NzboHqZVJcbdtVGYrOosXQ PyEval_GetBuiltins;
tyProc__NzboHqZVJcbdtVGYrOosXQ PyEval_GetGlobals;
tyProc__NzboHqZVJcbdtVGYrOosXQ PyEval_GetLocals;
tyProc__9b2qzlf3LCKK0JvThQT1atg PyCFunction_NewEx;
NI pythonVersion;
tyProc__U0oVFt576Ze44Q9a3eZc5wg PyErr_Fetch;
tyProc__U0oVFt576Ze44Q9a3eZc5wg PyErr_NormalizeException;
tyProc__MTei9bsKjha0o1cISO9aLMDg PyErr_GivenExceptionMatches;
void* PyExc_BaseException;
void* PyExc_Exception;
void* PyExc_ArithmeticError;
void* PyExc_FloatingPointError;
void* PyExc_OverflowError;
void* PyExc_ZeroDivisionError;
void* PyExc_AssertionError;
void* PyExc_OSError;
void* PyExc_IOError;
void* PyExc_ValueError;
void* PyExc_EOFError;
void* PyExc_MemoryError;
void* PyExc_IndexError;
void* PyExc_KeyError;
void* NimPyException;
};
typedef void* tyArray__RTLVphsxM9a6IMxFlAllF2Q[1024];
typedef NF tyArray__iV2wVpdhi9coq9cstlcqapXg[2001];
struct tyObject_GcThread__hgJQSlfXDOK3SwSHjeZBXg {
tyArray__iV2wVpdhi9coq9cstlcqapXg tls;
};
typedef N_STDCALL_PTR(NI, tyProc__uryidYWkntM7ddjZSyxvyQ) (void);
typedef N_STDCALL_PTR(NI32, tyProc__Ph37G33p2ec6K0xFeDk1cQ) (NI hProcess, void** lphModule, NI32 cb, NI32* cbNeeded);
struct RootObj {
TNimType* m_type;
};
struct Exception {
  RootObj Sup;
Exception* parent;
NCSTRING name;
NimStringDesc* message;
tySequence__uB9b75OUPRENsBAu4AnoePA* trace;
Exception* up;
};
typedef N_CDECL_PTR(void*, tyProc__2ujOETN3z9btuXStkbh8Cdg) (NCSTRING name, tyObject_PyMethodDef__9aWi1PsmvCuTKIYDHHnhfcw* methods, NCSTRING doc, void* self, int apiver);
struct tyObject_PyObjectObj__aD5pkFWInXrZXinZ42cDEg {
NI ob_refcnt;
void* ob_type;
};
struct tyObject_PyObjectVarHeadObj__5fAkl5kIcYJNl6VvYzZdMw {
  tyObject_PyObjectObj__aD5pkFWInXrZXinZ42cDEg Sup;
NI ob_size;
};
typedef N_CDECL_PTR(int, tyProc__rNiGphbUW4RHd2WIj64deg) (void* o, FILE* f, int c);
typedef N_CDECL_PTR(void*, tyProc__k4RBH32nrpDxtGF9acg45zw) (void* a, void* b, int c);
typedef N_CDECL_PTR(void*, tyProc__Cj3MN9a7OA9a51xOtsYjEwBg) (tyObject_PyTypeObject3Obj__cRsC9bGvH9bX6A9aVx8UB6I5g* typ, NI sz);
struct tyObject_PyTypeObject3Obj__cRsC9bGvH9bX6A9aVx8UB6I5g {
  tyObject_PyObjectVarHeadObj__5fAkl5kIcYJNl6VvYzZdMw Sup;
NCSTRING tp_name;
NI tp_basicsize;
NI tp_itemsize;
tyProc__32w2ZypAyMWuajvi2Jt79cg tp_dealloc;
tyProc__rNiGphbUW4RHd2WIj64deg tp_print;
tyProc__YezmFzxOOyM9cb11Eoq1Elg tp_getattr;
tyProc__T08W9bgbY4bOv2q64h6irpw tp_setattr;
void* tp_as_async;
tyProc__jvPpjMAkI9bwM1B9apOphnlA tp_repr;
void* tp_as_number;
void* tp_as_sequence;
void* tp_as_mapping;
void* tp_hash;
void* tp_call;
tyProc__jvPpjMAkI9bwM1B9apOphnlA tp_str;
tyProc__VQ1ysQk017myXMGb79cPTVw tp_getattro;
tyProc__7LMjBc4zOHVIsNdulNv7QQ tp_setattro;
void* tp_as_buffer;
unsigned long tp_flags;
NCSTRING tp_doc;
void* tp_traverse;
void* tp_clear;
tyProc__k4RBH32nrpDxtGF9acg45zw tp_richcompare;
NI tp_weaklistoffset;
tyProc__jvPpjMAkI9bwM1B9apOphnlA tp_iter;
tyProc__jvPpjMAkI9bwM1B9apOphnlA tp_iternext;
tyObject_PyMethodDef__9aWi1PsmvCuTKIYDHHnhfcw* tp_methods;
tyObject_PyMemberDef__WC29aEeHi2Pdy9c4AkllcBTg* tp_members;
void* tp_getset;
tyObject_PyTypeObject3Obj__cRsC9bGvH9bX6A9aVx8UB6I5g* tp_base;
void* tp_dict;
tyProc__uQWqJp3WAx8fOY1h9aCwjIg tp_descr_get;
tyProc__7LMjBc4zOHVIsNdulNv7QQ tp_descr_set;
NI tp_dictoffset;
tyProc__7LMjBc4zOHVIsNdulNv7QQ tp_init;
tyProc__Cj3MN9a7OA9a51xOtsYjEwBg tp_alloc;
tyProc__eYT4U6bGFqFBUxk9b15mfOA tp_new;
tyProc__32w2ZypAyMWuajvi2Jt79cg tp_free;
void* tp_is_gc;
tyObject_PyObjectObj__aD5pkFWInXrZXinZ42cDEg* tp_bases;
void* tp_mro;
void* tp_cache;
tyObject_PyObjectObj__aD5pkFWInXrZXinZ42cDEg* tp_subclasses;
tyObject_PyObjectObj__aD5pkFWInXrZXinZ42cDEg* tp_weaklist;
tyProc__32w2ZypAyMWuajvi2Jt79cg tp_del;
unsigned int tp_version_tag;
tyProc__32w2ZypAyMWuajvi2Jt79cg tp_finalize;
};
struct tyObject_PyObject_HEAD_EXTRA__AZfyXx4FzGJVoO01VjoS9cw {
void* ob_next;
void* ob_prev;
};
struct tyObject_PyNimObjectcolonObjectType___EzO9cx6qeJIOpzFHShySXxA {
TNimType* m_type;
tyObject_PyObject_HEAD_EXTRA__AZfyXx4FzGJVoO01VjoS9cw py_extra_dont_use;
tyObject_PyObjectObj__aD5pkFWInXrZXinZ42cDEg py_object;
};
struct tyObject_PyIteratorObj__GqRpYj9a7yzFP1C6hQf7QBQ {
  tyObject_PyObjectVarHeadObj__5fAkl5kIcYJNl6VvYzZdMw Sup;
tyObject_PyIterRefcolonObjectType___d9bsBVvwpaMgkPbcqU7T9apw* iRef;
};
typedef struct {
N_NIMCALL_PTR(void*, ClP_0) (void* ClE_0);
void* ClE_0;
} tyProc__peT56IS8cvb9cfUlN5SSjqg;
struct tyObject_PyIterRefcolonObjectType___d9bsBVvwpaMgkPbcqU7T9apw {
tyProc__peT56IS8cvb9cfUlN5SSjqg iter;
};
typedef N_CLOSURE_PTR(void*, TM__LoH0foxqckmmftA2y2Dp9aw_7) (void);
typedef N_CDECL_PTR(void*, tyProc__BEMKLd49c5qNHqmldA6aVaw) (void* m, int apiver);
struct tyObject_PyModuleDef_Base__rlCDhfYMTJl9bANneNOHAGQ {
tyObject_PyObjectObj__aD5pkFWInXrZXinZ42cDEg ob_base;
tyProc__NzboHqZVJcbdtVGYrOosXQ m_init;
NI m_index;
void* m_copy;
};
struct tyObject_PyModuleDef__QZDAPlXtpUM7Y9asxNBUBwg {
tyObject_PyModuleDef_Base__rlCDhfYMTJl9bANneNOHAGQ m_base;
NCSTRING m_name;
NCSTRING m_doc;
NI m_size;
tyObject_PyMethodDef__9aWi1PsmvCuTKIYDHHnhfcw* m_methods;
tyObject_PyModuleDef_Slot__vPt0O09cLIJL9aVVlDCzVeRA* m_slots;
void* m_traverse;
void* m_clear;
void* m_free;
};
struct tyObject_GcStack__7fytPA5bBsob6See21YMRA {
void* bottom;
};
struct tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w {
NI len;
NI cap;
tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g** d;
};
typedef tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ* tyArray__SPr7N6UKfuF549bNPiUvSRw[256];
typedef NU32 tyArray__BHbOSqU1t9b3Gt7K2c6fQig[24];
typedef tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* tyArray__N1u1nqOgmuJN9cSZrnMHgOQ[32];
typedef tyArray__N1u1nqOgmuJN9cSZrnMHgOQ tyArray__B6durA4ZCi1xjJvRtyYxMg[24];
typedef tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw* tyArray__lh2A89ahMmYg9bCmpVaplLbA[256];
struct tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA {
tyArray__lh2A89ahMmYg9bCmpVaplLbA data;
};
typedef tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* tyArray__0aOLqZchNi8nWtMTi8ND8w[2];
struct tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw {
tyArray__0aOLqZchNi8nWtMTi8ND8w link;
NI key;
NI upperBound;
NI level;
};
struct tyTuple__ujsjpB2O9cjj3uDHsXbnSzg {
tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* Field0;
NI Field1;
};
typedef tyTuple__ujsjpB2O9cjj3uDHsXbnSzg tyArray__LzOv2eCDGiceMKQstCLmhw[30];
struct tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg {
NI len;
tyArray__LzOv2eCDGiceMKQstCLmhw chunks;
tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg* next;
};
struct tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg {
NI minLargeObj;
NI maxLargeObj;
tyArray__SPr7N6UKfuF549bNPiUvSRw freeSmallChunks;
NU32 flBitmap;
tyArray__BHbOSqU1t9b3Gt7K2c6fQig slBitmap;
tyArray__B6durA4ZCi1xjJvRtyYxMg matrix;
tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw* llmem;
NI currMem;
NI maxMem;
NI freeMem;
NI occ;
NI lastSize;
tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA chunkStarts;
tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* root;
tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* deleted;
tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* last;
tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* freeAvlNodes;
NIM_BOOL locked;
NIM_BOOL blockChunkSizeIncrease;
NI nextChunkSize;
tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw bottomData;
tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg heapLinks;
};
struct tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg {
NI collections;
NI maxThreshold;
NI maxStackSize;
NI freedObjects;
};
struct tyObject_SharedList__JI9cx34TL8n3aOKF6tSMBUw {
tyObject_SharedListNodecolonObjectType___KGw0YAw6W9aSz3Sr9aXGu7zg* head;
tyObject_SharedListNodecolonObjectType___KGw0YAw6W9aSz3Sr9aXGu7zg* tail;
CRITICAL_SECTION lock;
};
struct tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ {
tyObject_GcStack__7fytPA5bBsob6See21YMRA stack;
NI cycleThreshold;
tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w tempStack;
NI recGcLock;
tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg region;
tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg stat;
tyObject_SharedList__JI9cx34TL8n3aOKF6tSMBUw toDispose;
NI gcThreadId;
tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w additionalRoots;
};
struct tyObject_Defect__LbeSGvgPzGzXnW9caIkJqMA {
  Exception Sup;
};
struct tyObject_AssertionDefect__PtYxPmY5X0dorfvxAFbJpQ {
  tyObject_Defect__LbeSGvgPzGzXnW9caIkJqMA Sup;
};
typedef NimStringDesc* tyArray__nHXaesL0DJZHyVS07ARPRA[1];
struct tyTuple__hbPS8r7C9a0SBVkFBnwt1Ww {
tyProc__YRQqZC12s3573tRGP8MV3g Field0;
tyProc__oPIasAghCTvCKmvkMeB1xQ Field1;
};
struct tyTuple__UV3llMMYFckfui8YMBuUZA {
NimStringDesc* Field0;
NimStringDesc* Field1;
};
struct tyObject_Table__Ji6x6JQ0gVMaFr8AIk18Ug {
tySequence__SFipDZIkFtPcrLs0AGBBjQ* data;
NI counter;
};
struct tyTuple__8ZxhPt1NwfElsJs8zUSV9bg {
NI Field0;
NimStringDesc* Field1;
NimStringDesc* Field2;
};
struct tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA {
NCSTRING procname;
NI line;
NCSTRING filename;
};
typedef N_NIMCALL_PTR(NIM_BOOL, tyProc__9axCnCRMUx32AHzFgBrzSMg) (Exception* e);
typedef struct {
N_NIMCALL_PTR(void, ClP_0) (void* ClE_0);
void* ClE_0;
} tyProc__HzVCwACFYM9cx9aV62PdjtuA;
typedef struct {
N_NIMCALL_PTR(void, ClP_0) (tyProc__HzVCwACFYM9cx9aV62PdjtuA cbproc, void* ClE_0);
void* ClE_0;
} tyProc__VHS3NdmbwcdcZKmKV1JWhw;

/* section: NIM_merge_SEQ_TYPES */
struct tySequence__E2XyP5e7Jr9aMpJMjdz5Tkg {
  TGenericSeq Sup;
  tyObject_PyMethodDef__9aWi1PsmvCuTKIYDHHnhfcw data[SEQ_DECL_SIZE];
};
struct tySequence__mAI4KvRAgoko9bmrV4QRgaQ {
  TGenericSeq Sup;
  tyObject_PyMemberDef__WC29aEeHi2Pdy9c4AkllcBTg data[SEQ_DECL_SIZE];
};
struct tySequence__1Ib9a4sxiw4YCYbDTADLEsg {
  TGenericSeq Sup;
  tyObject_PyTypeDesc__BKCcJxogshNojOoN23Qfbg data[SEQ_DECL_SIZE];
};
struct tySequence__xxWWYOndkW9adiM61bZkvsg {
  TGenericSeq Sup;
  tyObject_PyIteratorDesc__3Lh9c29bpC2Iomkl9cQO9cGqEw data[SEQ_DECL_SIZE];
};
struct tySequence__4eQHGndY6XBYpFOH09apV8Q {
  TGenericSeq Sup;
  tyTuple__UV3llMMYFckfui8YMBuUZA data[SEQ_DECL_SIZE];
};
struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ {
  TGenericSeq Sup;
  NimStringDesc* data[SEQ_DECL_SIZE];
};
struct tySequence__AjV3cEUgs0Y9c7dCt9aItdIA {
  TGenericSeq Sup;
  tyObject_XmlNodeObj__X79bE2j9a1V7tizbx9blALudQ* data[SEQ_DECL_SIZE];
};
struct tySequence__uB9b75OUPRENsBAu4AnoePA {
  TGenericSeq Sup;
  tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA data[SEQ_DECL_SIZE];
};
struct tySequence__SFipDZIkFtPcrLs0AGBBjQ {
  TGenericSeq Sup;
  tyTuple__8ZxhPt1NwfElsJs8zUSV9bg data[SEQ_DECL_SIZE];
};
struct tySequence__aNpJjaoUowCQc7fBn3wtDQ {
  TGenericSeq Sup;
  tyProc__HzVCwACFYM9cx9aV62PdjtuA data[SEQ_DECL_SIZE];
};
typedef struct {tyProc__9axCnCRMUx32AHzFgBrzSMg localRaiseHook__EIvMhANBvB9cp2Ezvt29cADg;
NIM_BOOL nimInErrorMode__759bT87luu8XGcbkw13FUjA;
tySequence__aNpJjaoUowCQc7fBn3wtDQ* threadDestructionHandlers__8OmU3x0fNdA0DLtOmU3kWw;
NI threadId__wzrdPYhtL9czkCWS4o9an9cRw;
TFrame* framePtr__HRfVMH3jYeBJz6Q6X9b6Ptw;
TSafePoint* excHandler__rqLlY5bs9atDw2OXYqJEn5g;
Exception* currException__9bVPeDJlYTi9bQApZpfH8wjg;
GcFrameHeader* gcFramePtr__ot48iojqko9aFxGhyjjjVaA;
tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ gch__IcYaEuuWivYAS86vFMTS3Q;
tyObject_TimezonecolonObjectType___F8OvqlxXyGXRSiK9c1fCDVw* utcInstance__oeKVHn4dFpBJO35HhEkelw;
tyObject_TimezonecolonObjectType___F8OvqlxXyGXRSiK9c1fCDVw* localInstance__cLtN9cK9bCe6IPhJ3UFNLNKA;
NIM_BOOL envComputed__LLyFo9bsdu1ZXMDvAe8DhrQ;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* environment__mlhK49b6YMgc9cgrcYkKq9a3g;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* ownArgv__WVJ54JSHy7VxacV39bwBPFA;
NIM_BOOL ownParsedArgv__9btHydaUC5pNXxitEZsyzIg;
tyProc__VHS3NdmbwcdcZKmKV1JWhw callSoonProc__9b9b4iUSd60RO2UqC52ifJ6A;
tyObject_PDispatchercolonObjectType___mNiwh37MfaAP9cG4kqT6kpg* gDisp__yIbBArLUsg2pBJkilx4yvg;
tyObject_SslContextcolonObjectType___nNdejAl9bbVbX7sP6RJ4h0w* defaultSslContext__3GZQajZtKdLpqTTN2RjTzw;
NIM_BOOL isSlave__t9a8wsVVRYqGEKhg1vb49b3g;
NIM_BOOL pyThreadFrameInited__0LBR4zzVR5uWvgtv8SrMjg;
NIM_BOOL gcInited__uuy3PWTwb5gov9ao9bXJYBPg;
} NimThreadVars;

/* section: NIM_merge_PROC_HEADERS */
static N_NIMCALL(void, Marker_tySequence__E2XyP5e7Jr9aMpJMjdz5Tkg)(void* p, NI op);
static N_NIMCALL(void, Marker_tySequence__mAI4KvRAgoko9bmrV4QRgaQ)(void* p, NI op);
N_LIB_PRIVATE N_NIMCALL(void, nimGCvisit)(void* d, NI op);
static N_NIMCALL(void, Marker_tySequence__1Ib9a4sxiw4YCYbDTADLEsg)(void* p, NI op);
static N_NIMCALL(void, Marker_tySequence__xxWWYOndkW9adiM61bZkvsg)(void* p, NI op);
N_LIB_PRIVATE N_NIMCALL(void, initCommon__QOPr6RYgxP9c8n2lZVbiDwA_2)(tyObject_PyModuleDesc__gBC8z6Ez5xj3dXoP0ylCRA* m);
static N_INLINE(tyObject_PyLibcolonObjectType___bTw708kK89b8Vj9cmSu9a4zig*, loadPyLibFromThisProcess__BsQmJMGr5ZAbtgfbdLVOTQpy_lib)(void);
N_LIB_PRIVATE N_NIMCALL(tyObject_PyLibcolonObjectType___bTw708kK89b8Vj9cmSu9a4zig*, loadPyLibFromModule__qG86BLyCRE79ccVgEQ4WOeA)(void* m);
static N_INLINE(void*, pythonLibHandleForThisProcess__qoq1L3DB9cXw9c9bTTVSl8S0gpy_lib)(void);
static N_INLINE(void*, findPythonDLL__qoq1L3DB9cXw9c9bTTVSl8S0g_2py_lib)(void);
static N_INLINE(void, nimZeroMem)(void* p, NI size);
static N_INLINE(void, nimSetMem__zxfKBYntu9cBapkhrCOk1fgmemory)(void* a, int v, NI size);
static N_INLINE(NIM_BOOL*, nimErrorFlag)(void);
static N_INLINE(void*, GetThreadLocalVars)(void);
N_LIB_PRIVATE N_NIMCALL(void*, threadVarGetValue__O8VJSmwa3WY6y9bP6Ht9b7hw)(NI32 dwTlsIndex);
static N_INLINE(NIM_BOOL, isPythonLibHandle__uznnkB3W9bFus8G9bNhv6wZwpy_lib)(void* h);
N_LIB_PRIVATE N_NIMCALL(void*, symAddr__ALH9bdNwXEzg7MPq4PA9csvw)(void* lib, NCSTRING name);
N_LIB_PRIVATE N_NIMCALL(void*, newObj)(TNimType* typ, NI size);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, copyString)(NimStringDesc* src);
N_LIB_PRIVATE N_NIMCALL(void, raiseExceptionEx)(Exception* e, NCSTRING ename, NCSTRING procname, NCSTRING filename, NI line);
N_LIB_PRIVATE N_NIMCALL(TGenericSeq*, incrSeqV3)(TGenericSeq* s, TNimType* typ);
N_LIB_PRIVATE N_NIMCALL(void, initModuleTypes__csb2z5UIH3D9cgBHISzH54g)(void* p, tyObject_PyModuleDesc__gBC8z6Ez5xj3dXoP0ylCRA* m);
static N_INLINE(void*, pyAlloc__1Aee2onoqwg9aFJWAasp3iAnimpy)(NI sz);
N_LIB_PRIVATE N_NOCONV(void*, alloc0Impl__KzdpcuLT9aef9bsiSHlIu9aFg)(NI size);
static N_INLINE(tyObject_PyTypeObject3Obj__cRsC9bGvH9bX6A9aVx8UB6I5g*, to__5tJl9a9cvcVqYJFbXrlgYbfApy_lib)(void* p);
static N_INLINE(NCSTRING, nimToCStringConv)(NimStringDesc* s);
N_LIB_PRIVATE N_CDECL(void, freeNimObj__jz2epPJWRa0T6WbzV9cD4Og)(void* p);
N_LIB_PRIVATE N_CDECL(void, destructNimObj__5aiupm4TAhj22Yu9cWwwuVg)(void* o);
static N_INLINE(tyObject_PyNimObjectcolonObjectType___EzO9cx6qeJIOpzFHShySXxA*, toNim__BNt3aWEMNlje8KgYqFe8Vwnimpy)(void* p);
N_LIB_PRIVATE N_NIMCALL(void, nimGCunref)(void* p);
static N_INLINE(void, incRef__CnqcscfOCAX2jCHv3dRPDwpy_utils)(void* p);
static N_INLINE(tyObject_PyObjectObj__aD5pkFWInXrZXinZ42cDEg*, to__4gaYCHYBaCTIs6wfSrqsEApy_lib)(void* p);
N_LIB_PRIVATE N_CDECL(void, destructNimIterator__5aiupm4TAhj22Yu9cWwwuVg_2)(void* o);
static N_INLINE(tyObject_PyIteratorObj__GqRpYj9a7yzFP1C6hQf7QBQ*, to__g6ziajH1gssveMp8KIs8MApy_lib)(void* p);
N_LIB_PRIVATE N_CDECL(void*, iterNext__TMTCC6fq12K15WuKEA8z4w)(void* i);
static N_INLINE(void, updateStackBottom__FRn3WNsRdbdvfuL6O7x1BQnimpy)(void);
N_LIB_PRIVATE N_NOINLINE(void, nimGC_setStackBottom)(void* theStackBottom);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isObj)(TNimType* obj, TNimType* subclass);
static N_INLINE(Exception*, nimBorrowCurrentException)(void);
static N_INLINE(Exception*, getCurrentException)(void);
N_LIB_PRIVATE N_NIMCALL(void*, pythonException__Zl8uxcjgHaQZB15tcqXlTA)(Exception* e);
static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src);
static N_INLINE(void, copyMem__i80o3k0SgEI5gTRCzYdyWAsystem)(void* dest, void* source, NI size);
static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, cstrToNimstr)(NCSTRING str);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, rawNewString)(NI space);
static N_INLINE(void, decRef__CnqcscfOCAX2jCHv3dRPDw_2py_utils)(void* p);
static N_INLINE(NimStringDesc*, getCurrentExceptionMsg__jLt3ACHcgYt9bbV4Vf9a5mgwsystem)(void);
static N_INLINE(void, popCurrentException)(void);
static N_INLINE(void, initPyModule__DD6uuT0cNlotk9a8nyu9bE7wnimpy)(tyObject_PyModuleDef__QZDAPlXtpUM7Y9asxNBUBwg* p, tyObject_PyModuleDesc__gBC8z6Ez5xj3dXoP0ylCRA* m);
static N_INLINE(tyObject_PyModuleDef__QZDAPlXtpUM7Y9asxNBUBwg*, to__wt9cwaSUiMGJ5i7qopVibqApy_lib)(void* p);
static N_INLINE(void, GC_disable__RsY2eAkO9aEvlDhb7ZyRF8gsystem)(void);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nimIntToStr)(NI x);
static N_INLINE(void, GC_enable__RsY2eAkO9aEvlDhb7ZyRF8g_2system)(void);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, pyDictHasKey__gPPk6uJ9bWMpMyW6uS9azQWg)(void* o, NCSTRING k);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, eqeq___gPPk6uJ9bWMpMyW6uS9azQWg_2)(void* o, NCSTRING k);
static N_INLINE(NIM_BOOL, eqeq___aqip9cmQIuefPKdd25wuEEwsystem)(NCSTRING x, NCSTRING y);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___rh9a6aY6urF0Nohf9aeDyH4Q)(void* p);
N_LIB_PRIVATE N_NIMCALL(void, pyObjToNimStr__eEwHrfmOllfqMcr3IQY2zQ)(void* o, NimStringDesc** v);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, pyStringToNim__9cjH8eaYe0aMdbQ9bg4rwiDw)(void* o, NimStringDesc** output);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nsuFormatOpenArray)(NimStringDesc* formatstr, NimStringDesc** a, NI aLen_0);
N_LIB_PRIVATE N_NIMCALL(void*, getPyArg__NkJdiXLR244lRh2jwrl9clw)(void* argTuple, void* argDict, NI argIdx, NCSTRING argName);
static N_INLINE(void, pyObjToNim__b0mmTXdtWy9av9cY5rqshVIAnimpy)(void* o, NimStringDesc** v);
static N_INLINE(void, pyObjToNim__BgfcSbBa0ZAfhYwnCVXo7Qnimpy)(void* o, NI* v);
N_LIB_PRIVATE N_NIMCALL(void, clearAndRaiseConversionError__z8PFXg0IwDVDHYuZ87EtFg)(NimStringDesc* toType);
N_LIB_PRIVATE N_NIMCALL(void, raiseConversionError__z8PFXg0IwDVDHYuZ87EtFg_2)(NimStringDesc* toType);
static N_INLINE(void, pyObjToNim__U8qvyTeMcnismWLmv7skCwnimpy)(void* o, tySequence__4eQHGndY6XBYpFOH09apV8Q** v);
N_LIB_PRIVATE N_NIMCALL(void, pyObjToNimSeq__HiI5OfaHZnKDblDYPhNteQ)(void* o, tySequence__4eQHGndY6XBYpFOH09apV8Q** v);
N_LIB_PRIVATE N_NIMCALL(tyTuple__hbPS8r7C9a0SBVkFBnwt1Ww, getListOrTupleAccessors__jPqUiLT6lERM4HqZerQlNg)(void* o);
static N_INLINE(NIM_BOOL, checkObjSubclass__dy3LelvW4G2VSkE8TdlDDgpy_utils)(void* o, tyObject_PyTypeObject3Obj__cRsC9bGvH9bX6A9aVx8UB6I5g* ty);
N_LIB_PRIVATE N_NIMCALL(tySequence__4eQHGndY6XBYpFOH09apV8Q*, newSeq__vM79c4uR4a0HcxFVMjZke9cw)(NI len);
N_LIB_PRIVATE N_NIMCALL(void, pyObjFillArray__dTckwJ1cCjsHKjqSIxaT5w)(void* o, tyProc__oPIasAghCTvCKmvkMeB1xQ getItem, tyTuple__UV3llMMYFckfui8YMBuUZA* v, NI vLen_0);
static N_INLINE(void, pyObjToNim__9aiOIXLg9bPem2GgRNBbdOqQnimpy)(void* o, tyTuple__UV3llMMYFckfui8YMBuUZA* v);
N_LIB_PRIVATE N_NIMCALL(void, pyObjToNimTuple__sbpAHhQHaYjDar4szDrUBw)(void* o, tyTuple__UV3llMMYFckfui8YMBuUZA* v);
N_LIB_PRIVATE N_NIMCALL(void*, PyObject_CallObject__YcloOfKTa9aIW0IuyJyt1yg)(void* o);
N_LIB_PRIVATE N_NIMCALL(NI, len__5HyJrijzw6C9busX1MaqvCw)(tyObject_Table__Ji6x6JQ0gVMaFr8AIk18Ug t);
static N_INLINE(NIM_BOOL, isFilled__5Qpmu5QqwDY0esVXn6wf7wtables)(NI hcode);
static N_INLINE(void*, nimValueToPy__JCDkP8wgVvgrZH49cYEzgDAnimpy)(NimStringDesc* v);
N_LIB_PRIVATE N_NIMCALL(void*, strToPyObject__HrbiptnioAqtONeuJHPBSQ)(NimStringDesc* s);
N_LIB_PRIVATE N_NIMCALL(void, cannotSerializeErr__i9c8TXOdJNX0v1Y3vnKHHNQ)(NimStringDesc* k);
static N_INLINE(void, pyObjToNim__Z03vdBvKOS0yvzQ0mescLwnimpy)(void* o, tySequence__4eQHGndY6XBYpFOH09apV8Q** v);
N_LIB_PRIVATE N_NIMCALL(void, pyObjToNimSeq__oxdKUVR0NRPCxfEo19cIXGg)(void* o, tySequence__4eQHGndY6XBYpFOH09apV8Q** v);
N_LIB_PRIVATE N_NIMCALL(tySequence__4eQHGndY6XBYpFOH09apV8Q*, newSeq__aNAzke7xLA1lvAqdwdmLAw)(NI len);
N_LIB_PRIVATE N_NIMCALL(void, pyObjFillArray__oMb8yUZcSyWADPTVzBWC0g)(void* o, tyProc__oPIasAghCTvCKmvkMeB1xQ getItem, tyTuple__UV3llMMYFckfui8YMBuUZA* v, NI vLen_0);
static N_INLINE(void, pyObjToNim__zjhwUV5ThzEPk9c04z5QRRQnimpy)(void* o, tyTuple__UV3llMMYFckfui8YMBuUZA* v);
N_LIB_PRIVATE N_NIMCALL(void, pyObjToNimTuple__7EKCxyrhk9a9cloWGT4ZNzng)(void* o, tyTuple__UV3llMMYFckfui8YMBuUZA* v);
static N_INLINE(void, pyObjToNim__FjLZIS6bmCNfbqp1u4mSjAnimpy)(void* o, NIM_BOOL* v);
static N_INLINE(void, pyObjToNim__7qxhZAIvrwFRxsapLd0gHgnimpy)(void* o, tySequence__4eQHGndY6XBYpFOH09apV8Q** v);
N_LIB_PRIVATE N_NIMCALL(void, pyObjToNimSeq__RfZ7mE6aYkJbeVJjD5LHLg)(void* o, tySequence__4eQHGndY6XBYpFOH09apV8Q** v);
N_LIB_PRIVATE N_NIMCALL(tySequence__4eQHGndY6XBYpFOH09apV8Q*, newSeq__F7cOytKF8dCnFDv273qpMg)(NI len);
N_LIB_PRIVATE N_NIMCALL(void, pyObjFillArray__ZDG0GY649bh2g6fiJ4Doqcw)(void* o, tyProc__oPIasAghCTvCKmvkMeB1xQ getItem, tyTuple__UV3llMMYFckfui8YMBuUZA* v, NI vLen_0);
static N_INLINE(void, pyObjToNim__cmJozxzeVXanlnTuPUKNTAnimpy)(void* o, tyTuple__UV3llMMYFckfui8YMBuUZA* v);
N_LIB_PRIVATE N_NIMCALL(void, pyObjToNimTuple__UIJbc4J38ur9a2I8kPaUWkA)(void* o, tyTuple__UV3llMMYFckfui8YMBuUZA* v);
static N_INLINE(void, pyObjToNim__2vv2m02rFZR8ENJ2qpiS9cwnimpy)(void* o, tySequence__sM4lkSb7zS6F7OVMvW9cffQ** v);
N_LIB_PRIVATE N_NIMCALL(void, pyObjToNimSeq__PlDrJiwmvqWSU9cx2JvzXQQ)(void* o, tySequence__sM4lkSb7zS6F7OVMvW9cffQ** v);
N_LIB_PRIVATE N_NIMCALL(tySequence__sM4lkSb7zS6F7OVMvW9cffQ*, newSeq__q7W9bxIQ7BrFLngLO9cYelsA)(NI len);
N_LIB_PRIVATE N_NIMCALL(void, pyObjFillArray__P4R9bY9aJLZA678YHl3b5l4g)(void* o, tyProc__oPIasAghCTvCKmvkMeB1xQ getItem, NimStringDesc** v, NI vLen_0);
static N_INLINE(void*, nimValueToPy__zXY4sY8ktz8SKCRtLhP9bkwnimpy)(tyObject_Table__Ji6x6JQ0gVMaFr8AIk18Ug v);
N_LIB_PRIVATE N_NIMCALL(void*, nimTabToPy__7GcP1UPgFz7C9aCvCSgmnMw)(tyObject_Table__Ji6x6JQ0gVMaFr8AIk18Ug t);
static N_INLINE(void, pyObjToNim__fmqDTc4QtueK8K9bvGs8RZwnimpy)(void* o, tySequence__4eQHGndY6XBYpFOH09apV8Q** v);
N_LIB_PRIVATE N_NIMCALL(void, pyObjToNimSeq__lJTfpPnNV3g9aCsQmFMPF1g)(void* o, tySequence__4eQHGndY6XBYpFOH09apV8Q** v);
N_LIB_PRIVATE N_NIMCALL(tySequence__4eQHGndY6XBYpFOH09apV8Q*, newSeq__HC8tGwamevuQ9bMJqp0DH3w)(NI len);
N_LIB_PRIVATE N_NIMCALL(void, pyObjFillArray__dMzBaXcOvLJs54xFsDl1Ug)(void* o, tyProc__oPIasAghCTvCKmvkMeB1xQ getItem, tyTuple__UV3llMMYFckfui8YMBuUZA* v, NI vLen_0);
static N_INLINE(void, pyObjToNim__67nLgPPij2BjJurGAOgqDAnimpy)(void* o, tyTuple__UV3llMMYFckfui8YMBuUZA* v);
N_LIB_PRIVATE N_NIMCALL(void, pyObjToNimTuple__m6VWp5mqQQSnCMJPqIMClw)(void* o, tyTuple__UV3llMMYFckfui8YMBuUZA* v);
static N_INLINE(void, pyObjToNim__9bNDYgHmXHXyL1GRMrzOWJgnimpy)(void* o, NI* v);
static N_INLINE(void, pyObjToNim__UhGkux9bIHP9c4POtEBrXHkgnimpy)(void* o, NI* v);
static N_INLINE(void*, nimValueToPy__UXBfNV6yxrfH9bcIn6J9aBJAnimpy)(tySequence__AjV3cEUgs0Y9c7dCt9aItdIA* v);
N_LIB_PRIVATE N_NIMCALL(void*, nimArrToPy__LqB0BhDTFEuYAXO8ZDzOhQ)(tyObject_XmlNodeObj__X79bE2j9a1V7tizbx9blALudQ** s, NI sLen_0);
static N_INLINE(void*, nimValueToPy__ekQJkAPpjfHONEE4siX3TQnimpy)(tyObject_XmlNodeObj__X79bE2j9a1V7tizbx9blALudQ* v);
static N_INLINE(void*, newPyNone__6Tvzvi9bEckxJJClCQCOiEA_2nimpy)(void);
N_LIB_PRIVATE N_NIMCALL(void*, newPyCapsule__d3pCXTRU5UvUxvkLOKeQug)(tyObject_XmlNodeObj__X79bE2j9a1V7tizbx9blALudQ* v);
N_LIB_PRIVATE N_NIMCALL(void, nimGCref)(void* p);
N_LIB_PRIVATE N_CDECL(void, refCapsuleDestructor__ze39b9aKi9c9cUZEUUgSLeZ5eQ)(void* c);
static N_INLINE(void*, nimValueToPy__D3zjW9cYtGQuRuwL28IPiignimpy)(tySequence__sM4lkSb7zS6F7OVMvW9cffQ* v);
N_LIB_PRIVATE N_NIMCALL(void*, nimArrToPy__QDmD9aT9b4YNs9aDHJ7tXGoEA)(NimStringDesc** s, NI sLen_0);
static N_INLINE(void, pyObjToNim__wE9c7vjb15yfokWssKf3AbAnimpy)(void* o, NU16* v);
static N_INLINE(void, pyObjToNim__emFM2KESQJOmF9cVuZOXhVwnimpy)(void* o, NU8* v);

/* section: NIM_merge_DATA */
N_LIB_PRIVATE TNimType NTI__gBC8z6Ez5xj3dXoP0ylCRA_;
extern TNimType NTI__S9agCYBinaYZnGWcjTdxclg_;
extern TNimType NTI__9aWi1PsmvCuTKIYDHHnhfcw_;
N_LIB_PRIVATE TNimType NTI__E2XyP5e7Jr9aMpJMjdz5Tkg_;
N_LIB_PRIVATE TNimType NTI__BKCcJxogshNojOoN23Qfbg_;
N_LIB_PRIVATE TNimType NTI__v2GijgCrTru9brL7cjgOkag_;
extern TNimType NTI__77mFvmsOLKik79ci2hXkHEg_;
extern TNimType NTI__eYT4U6bGFqFBUxk9b15mfOA_;
extern TNimType NTI__WC29aEeHi2Pdy9c4AkllcBTg_;
N_LIB_PRIVATE TNimType NTI__mAI4KvRAgoko9bmrV4QRgaQ_;
extern TNimType NTI__rR5Bzr1D5krxoo1NcNyeMA_;
N_LIB_PRIVATE TNimType NTI__1Ib9a4sxiw4YCYbDTADLEsg_;
N_LIB_PRIVATE TNimType NTI__3Lh9c29bpC2Iomkl9cQO9cGqEw_;
N_LIB_PRIVATE TNimType NTI__xxWWYOndkW9adiM61bZkvsg_;
extern TNimType NTI__vU9aO9cTqOMn6CBzhV8rX7Sw_;
extern TNimType NTI__XEycrCsme5C8CVWAYEcdBQ_;
STRING_LITERAL(TM__LoH0foxqckmmftA2y2Dp9aw_5, "Could not find pythonXX.dll", 27);
STRING_LITERAL(TM__LoH0foxqckmmftA2y2Dp9aw_6, "Internal pynim error. Free called on Nim object.", 48);
STRING_LITERAL(TM__LoH0foxqckmmftA2y2Dp9aw_8, "nimpy.", 6);
STRING_LITERAL(TM__LoH0foxqckmmftA2y2Dp9aw_9, "Unexpected error encountered: ", 30);
STRING_LITERAL(TM__LoH0foxqckmmftA2y2Dp9aw_10, "() takes exactly ", 17);
STRING_LITERAL(TM__LoH0foxqckmmftA2y2Dp9aw_11, " arguments (", 12);
STRING_LITERAL(TM__LoH0foxqckmmftA2y2Dp9aw_12, " given)", 7);
extern TNimType NTI__S8DV6hfcgC9c0IiUsAoR29cQ_;
extern TNimType NTI__PtYxPmY5X0dorfvxAFbJpQ_;
STRING_LITERAL(TM__LoH0foxqckmmftA2y2Dp9aw_13, "API usage error: GC_enable called but GC is already enabled", 59);
STRING_LITERAL(TM__LoH0foxqckmmftA2y2Dp9aw_14, "() missing 1 required positional argument: ", 43);
STRING_LITERAL(TM__LoH0foxqckmmftA2y2Dp9aw_15, "() got multiple values for argument ", 36);
STRING_LITERAL(TM__LoH0foxqckmmftA2y2Dp9aw_16, "Can\'t convert python obj of type \'$1\' to string", 47);
STRING_LITERAL(TM__LoH0foxqckmmftA2y2Dp9aw_17, "() got an unexpected keyword argument ", 38);
STRING_LITERAL(TM__LoH0foxqckmmftA2y2Dp9aw_18, "Cannot convert python object to ", 32);
STRING_LITERAL(TM__LoH0foxqckmmftA2y2Dp9aw_19, "int", 3);
STRING_LITERAL(TM__LoH0foxqckmmftA2y2Dp9aw_20, "seq[tuple[key: string, val: string]]", 36);
STRING_LITERAL(TM__LoH0foxqckmmftA2y2Dp9aw_21, "tuple[key: string, val: string]", 31);
STRING_LITERAL(TM__LoH0foxqckmmftA2y2Dp9aw_22, "Could not serialize object key: ", 32);
STRING_LITERAL(TM__LoH0foxqckmmftA2y2Dp9aw_23, "seq[tuple[name: string, content: string]]", 41);
STRING_LITERAL(TM__LoH0foxqckmmftA2y2Dp9aw_24, "tuple[name: string, content: string]", 36);
STRING_LITERAL(TM__LoH0foxqckmmftA2y2Dp9aw_25, "seq[(string, string)]", 21);
STRING_LITERAL(TM__LoH0foxqckmmftA2y2Dp9aw_26, "(string, string)", 16);
STRING_LITERAL(TM__LoH0foxqckmmftA2y2Dp9aw_27, "seq[string]", 11);
STRING_LITERAL(TM__LoH0foxqckmmftA2y2Dp9aw_28, "seq[tuple[url: string, filename: string]]", 41);
STRING_LITERAL(TM__LoH0foxqckmmftA2y2Dp9aw_29, "tuple[url: string, filename: string]", 36);
STRING_LITERAL(TM__LoH0foxqckmmftA2y2Dp9aw_30, "Natural", 7);
STRING_LITERAL(TM__LoH0foxqckmmftA2y2Dp9aw_31, "Positive", 8);
STRING_LITERAL(TM__LoH0foxqckmmftA2y2Dp9aw_32, "uint16", 6);
STRING_LITERAL(TM__LoH0foxqckmmftA2y2Dp9aw_33, "byte", 4);

/* section: NIM_merge_VARS */
extern tyObject_PyLibcolonObjectType___bTw708kK89b8Vj9cmSu9a4zig* pyLib__nxKBiAukGMNwnUq9bpn9adyw;
extern NI32 globalsSlot__ciXDZu9c27pHpCRMoz4RIgw;
extern tyProc__uryidYWkntM7ddjZSyxvyQ Dl_12983563_;
extern tyProc__Ph37G33p2ec6K0xFeDk1cQ Dl_28845555_;
extern NU pyObjectStartOffset__g20dGCi2MffsHqmxIpqX7Q;

/* section: NIM_merge_PROCS */
static N_NIMCALL(void, Marker_tySequence__E2XyP5e7Jr9aMpJMjdz5Tkg)(void* p, NI op) {
	tySequence__E2XyP5e7Jr9aMpJMjdz5Tkg* a;
	NI T1_;
	a = (tySequence__E2XyP5e7Jr9aMpJMjdz5Tkg*)p;
	T1_ = (NI)0;
}
static N_NIMCALL(void, Marker_tySequence__mAI4KvRAgoko9bmrV4QRgaQ)(void* p, NI op) {
	tySequence__mAI4KvRAgoko9bmrV4QRgaQ* a;
	NI T1_;
	a = (tySequence__mAI4KvRAgoko9bmrV4QRgaQ*)p;
	T1_ = (NI)0;
}
static N_NIMCALL(void, Marker_tySequence__1Ib9a4sxiw4YCYbDTADLEsg)(void* p, NI op) {
	tySequence__1Ib9a4sxiw4YCYbDTADLEsg* a;
	NI T1_;
	a = (tySequence__1Ib9a4sxiw4YCYbDTADLEsg*)p;
	T1_ = (NI)0;
	for (T1_ = 0; T1_ < (a ? a->Sup.len : 0); T1_++) {
	nimGCvisit((void*)a->data[T1_].fullName, op);
	nimGCvisit((void*)a->data[T1_].methods, op);
	nimGCvisit((void*)a->data[T1_].members, op);
	}
}
static N_NIMCALL(void, Marker_tySequence__xxWWYOndkW9adiM61bZkvsg)(void* p, NI op) {
	tySequence__xxWWYOndkW9adiM61bZkvsg* a;
	NI T1_;
	a = (tySequence__xxWWYOndkW9adiM61bZkvsg*)p;
	T1_ = (NI)0;
}
N_LIB_PRIVATE N_NIMCALL(void, initPythonModuleDesc__0f1AKGy9a6FMRjtYbL5nSQg)(tyObject_PyModuleDesc__gBC8z6Ez5xj3dXoP0ylCRA* m, NCSTRING name, NCSTRING doc) {
	(*m).name = name;
	(*m).doc = doc;
}
static N_INLINE(void, nimSetMem__zxfKBYntu9cBapkhrCOk1fgmemory)(void* a, int v, NI size) {
	void* T1_;
	T1_ = (void*)0;
	T1_ = memset(a, v, ((size_t) (size)));
}
static N_INLINE(void*, GetThreadLocalVars)(void) {
	void* result;
	void* T1_;
	result = (void*)0;
	T1_ = (void*)0;
	T1_ = threadVarGetValue__O8VJSmwa3WY6y9bP6Ht9b7hw(globalsSlot__ciXDZu9c27pHpCRMoz4RIgw);
	result = ((void*) ((*((tyObject_GcThread__hgJQSlfXDOK3SwSHjeZBXg*) (T1_))).tls));
	return result;
}
static N_INLINE(NIM_BOOL*, nimErrorFlag)(void) {
	NIM_BOOL* result;
	NimThreadVars* NimTV_;
	NimTV_ = (NimThreadVars*) GetThreadLocalVars();
	result = (NIM_BOOL*)0;
	result = (&NimTV_->nimInErrorMode__759bT87luu8XGcbkw13FUjA);
	return result;
}
static N_INLINE(void, nimZeroMem)(void* p, NI size) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	nimSetMem__zxfKBYntu9cBapkhrCOk1fgmemory(p, ((int) 0), size);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
static N_INLINE(NIM_BOOL, isPythonLibHandle__uznnkB3W9bFus8G9bNhv6wZwpy_lib)(void* h) {
	NIM_BOOL result;
	void* s;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	s = symAddr__ALH9bdNwXEzg7MPq4PA9csvw(h, "PyModule_AddObject");
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	result = !((s == 0));
	}BeforeRet_: ;
	return result;
}
static N_INLINE(void*, findPythonDLL__qoq1L3DB9cXw9c9bTTVSl8S0g_2py_lib)(void) {
	void* result;
	tyArray__RTLVphsxM9a6IMxFlAllF2Q mods;
	NI32 sz;
	NI pr;
	Exception* T14_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (void*)0;
	nimZeroMem((void*)mods, sizeof(tyArray__RTLVphsxM9a6IMxFlAllF2Q));
	sz = (NI32)0;
	pr = Dl_12983563_();
	{
		NI32 T3_;
		T3_ = (NI32)0;
		T3_ = Dl_28845555_(pr, (&mods[(((NI) 0))- 0]), ((NI32) 1024), (&sz));
		if (!!((T3_ == ((NI32) 0)))) goto LA4_;
		{
			NI32 i;
			NI32 res;
			i = (NI32)0;
			res = ((NI32) 0);
			{
				while (1) {
					if (!(res < sz)) goto LA8;
					i = res;
					{
						NIM_BOOL T11_;
						T11_ = (NIM_BOOL)0;
						T11_ = isPythonLibHandle__uznnkB3W9bFus8G9bNhv6wZwpy_lib(mods[(i)- 0]);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						if (!T11_) goto LA12_;
						result = mods[(i)- 0];
						goto BeforeRet_;
					}
					LA12_: ;
					res += ((NI) 1);
				} LA8: ;
			}
		}
	}
	LA4_: ;
	T14_ = (Exception*)0;
	T14_ = (Exception*) newObj((&NTI__vU9aO9cTqOMn6CBzhV8rX7Sw_), sizeof(Exception));
	(*T14_).Sup.m_type = (&NTI__XEycrCsme5C8CVWAYEcdBQ_);
	(*T14_).name = "Exception";
	(*T14_).message = copyString(((NimStringDesc*) &TM__LoH0foxqckmmftA2y2Dp9aw_5));
	(*T14_).parent = NIM_NIL;
	raiseExceptionEx((Exception*)T14_, "Exception", "findPythonDLL", "py_lib.nim", 338);
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(void*, pythonLibHandleForThisProcess__qoq1L3DB9cXw9c9bTTVSl8S0gpy_lib)(void) {
	void* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (void*)0;
	result = findPythonDLL__qoq1L3DB9cXw9c9bTTVSl8S0g_2py_lib();
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(tyObject_PyLibcolonObjectType___bTw708kK89b8Vj9cmSu9a4zig*, loadPyLibFromThisProcess__BsQmJMGr5ZAbtgfbdLVOTQpy_lib)(void) {
	tyObject_PyLibcolonObjectType___bTw708kK89b8Vj9cmSu9a4zig* result;
	void* T1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_PyLibcolonObjectType___bTw708kK89b8Vj9cmSu9a4zig*)0;
	T1_ = (void*)0;
	T1_ = pythonLibHandleForThisProcess__qoq1L3DB9cXw9c9bTTVSl8S0gpy_lib();
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	result = loadPyLibFromModule__qG86BLyCRE79ccVgEQ4WOeA(T1_);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, initCommon__QOPr6RYgxP9c8n2lZVbiDwA_2)(tyObject_PyModuleDesc__gBC8z6Ez5xj3dXoP0ylCRA* m) {
	tyObject_PyMethodDef__9aWi1PsmvCuTKIYDHHnhfcw T6_;
	NI T7_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		tyObject_PyLibcolonObjectType___bTw708kK89b8Vj9cmSu9a4zig* T5_;
		if (!(pyLib__nxKBiAukGMNwnUq9bpn9adyw == 0)) goto LA3_;
		T5_ = (tyObject_PyLibcolonObjectType___bTw708kK89b8Vj9cmSu9a4zig*)0;
		T5_ = loadPyLibFromThisProcess__BsQmJMGr5ZAbtgfbdLVOTQpy_lib();
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		pyLib__nxKBiAukGMNwnUq9bpn9adyw = T5_;
	}
	LA3_: ;
	nimZeroMem((void*)(&T6_), sizeof(tyObject_PyMethodDef__9aWi1PsmvCuTKIYDHHnhfcw));
	(*m).methods = (tySequence__E2XyP5e7Jr9aMpJMjdz5Tkg*) incrSeqV3((TGenericSeq*)((*m).methods), (&NTI__E2XyP5e7Jr9aMpJMjdz5Tkg_));
	T7_ = (*m).methods->Sup.len++;
	(*m).methods->data[T7_] = T6_;
	}BeforeRet_: ;
}
static N_INLINE(void*, pyAlloc__1Aee2onoqwg9aFJWAasp3iAnimpy)(NI sz) {
	void* result;
	void* T1_;
	result = (void*)0;
	T1_ = (void*)0;
	T1_ = alloc0Impl__KzdpcuLT9aef9bsiSHlIu9aFg(((NI) ((NU)((NU64)(((NU) (sz))) + (NU64)(pyObjectStartOffset__g20dGCi2MffsHqmxIpqX7Q)))));
	result = ((void*) (T1_));
	return result;
}
static N_INLINE(tyObject_PyTypeObject3Obj__cRsC9bGvH9bX6A9aVx8UB6I5g*, to__5tJl9a9cvcVqYJFbXrlgYbfApy_lib)(void* p) {
	tyObject_PyTypeObject3Obj__cRsC9bGvH9bX6A9aVx8UB6I5g* result;
	result = (tyObject_PyTypeObject3Obj__cRsC9bGvH9bX6A9aVx8UB6I5g*)0;
	result = ((tyObject_PyTypeObject3Obj__cRsC9bGvH9bX6A9aVx8UB6I5g*) ((NU)((NU64)(((NU) (ptrdiff_t) (p))) + (NU64)(pyObjectStartOffset__g20dGCi2MffsHqmxIpqX7Q))));
	return result;
}
static N_INLINE(NCSTRING, nimToCStringConv)(NimStringDesc* s) {
	NCSTRING result;
	result = (NCSTRING)0;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = (s == NIM_NIL);
		if (T3_) goto LA4_;
		T3_ = ((*s).Sup.len == ((NI) 0));
		LA4_: ;
		if (!T3_) goto LA5_;
		result = "";
	}
	goto LA1_;
	LA5_: ;
	{
		result = ((NCSTRING) ((*s).data));
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_CDECL(void, freeNimObj__jz2epPJWRa0T6WbzV9cD4Og)(void* p) {
	Exception* T1_;
{	T1_ = (Exception*)0;
	T1_ = (Exception*) newObj((&NTI__vU9aO9cTqOMn6CBzhV8rX7Sw_), sizeof(Exception));
	(*T1_).Sup.m_type = (&NTI__XEycrCsme5C8CVWAYEcdBQ_);
	(*T1_).name = "Exception";
	(*T1_).message = copyString(((NimStringDesc*) &TM__LoH0foxqckmmftA2y2Dp9aw_6));
	(*T1_).parent = NIM_NIL;
	raiseExceptionEx((Exception*)T1_, "Exception", "freeNimObj", "nimpy.nim", 204);
	goto BeforeRet_;
	}BeforeRet_: ;
}
static N_INLINE(tyObject_PyNimObjectcolonObjectType___EzO9cx6qeJIOpzFHShySXxA*, toNim__BNt3aWEMNlje8KgYqFe8Vwnimpy)(void* p) {
	tyObject_PyNimObjectcolonObjectType___EzO9cx6qeJIOpzFHShySXxA* result;
	result = (tyObject_PyNimObjectcolonObjectType___EzO9cx6qeJIOpzFHShySXxA*)0;
	result = ((tyObject_PyNimObjectcolonObjectType___EzO9cx6qeJIOpzFHShySXxA*) ((NU)((NU64)(((NU) (ptrdiff_t) (p))) - (NU64)(((NU) 24)))));
	return result;
}
N_LIB_PRIVATE N_CDECL(void, destructNimObj__5aiupm4TAhj22Yu9cWwwuVg)(void* o) {
	tyObject_PyNimObjectcolonObjectType___EzO9cx6qeJIOpzFHShySXxA* n;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	n = toNim__BNt3aWEMNlje8KgYqFe8Vwnimpy(o);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	if (n) { nimGCunref(n); }
	}BeforeRet_: ;
}
static N_INLINE(tyObject_PyObjectObj__aD5pkFWInXrZXinZ42cDEg*, to__4gaYCHYBaCTIs6wfSrqsEApy_lib)(void* p) {
	tyObject_PyObjectObj__aD5pkFWInXrZXinZ42cDEg* result;
	result = (tyObject_PyObjectObj__aD5pkFWInXrZXinZ42cDEg*)0;
	result = ((tyObject_PyObjectObj__aD5pkFWInXrZXinZ42cDEg*) ((NU)((NU64)(((NU) (ptrdiff_t) (p))) + (NU64)(pyObjectStartOffset__g20dGCi2MffsHqmxIpqX7Q))));
	return result;
}
static N_INLINE(void, incRef__CnqcscfOCAX2jCHv3dRPDwpy_utils)(void* p) {
	tyObject_PyObjectObj__aD5pkFWInXrZXinZ42cDEg* T1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	T1_ = (tyObject_PyObjectObj__aD5pkFWInXrZXinZ42cDEg*)0;
	T1_ = to__4gaYCHYBaCTIs6wfSrqsEApy_lib(p);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*T1_).ob_refcnt += ((NI) 1);
	}BeforeRet_: ;
}
static N_INLINE(tyObject_PyIteratorObj__GqRpYj9a7yzFP1C6hQf7QBQ*, to__g6ziajH1gssveMp8KIs8MApy_lib)(void* p) {
	tyObject_PyIteratorObj__GqRpYj9a7yzFP1C6hQf7QBQ* result;
	result = (tyObject_PyIteratorObj__GqRpYj9a7yzFP1C6hQf7QBQ*)0;
	result = ((tyObject_PyIteratorObj__GqRpYj9a7yzFP1C6hQf7QBQ*) ((NU)((NU64)(((NU) (ptrdiff_t) (p))) + (NU64)(pyObjectStartOffset__g20dGCi2MffsHqmxIpqX7Q))));
	return result;
}
N_LIB_PRIVATE N_CDECL(void, destructNimIterator__5aiupm4TAhj22Yu9cWwwuVg_2)(void* o) {
	tyObject_PyIteratorObj__GqRpYj9a7yzFP1C6hQf7QBQ* n;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	n = to__g6ziajH1gssveMp8KIs8MApy_lib(o);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	if ((*n).iRef) { nimGCunref((*n).iRef); }
	}BeforeRet_: ;
}
static N_INLINE(void, updateStackBottom__FRn3WNsRdbdvfuL6O7x1BQnimpy)(void) {
	NI volatile a;
	a = (NI)0;
	nimGC_setStackBottom(((void*) (((NU) (ptrdiff_t) ((&a))))));
}
static N_INLINE(Exception*, nimBorrowCurrentException)(void) {
	Exception* result;
	NimThreadVars* NimTV_;
	NimTV_ = (NimThreadVars*) GetThreadLocalVars();
	result = (Exception*)0;
	result = NimTV_->currException__9bVPeDJlYTi9bQApZpfH8wjg;
	return result;
}
static N_INLINE(Exception*, getCurrentException)(void) {
	Exception* result;
	NimThreadVars* NimTV_;
	NimTV_ = (NimThreadVars*) GetThreadLocalVars();
	result = (Exception*)0;
	result = NimTV_->currException__9bVPeDJlYTi9bQApZpfH8wjg;
	return result;
}
static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size) {
	void* T1_;
	T1_ = (void*)0;
	T1_ = memcpy(dest, source, ((size_t) (size)));
}
static N_INLINE(void, copyMem__i80o3k0SgEI5gTRCzYdyWAsystem)(void* dest, void* source, NI size) {
	nimCopyMem(dest, source, size);
}
static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src) {
	{
		void* T5_;
		void* T6_;
		if (!!((src == NIM_NIL))) goto LA3_;
		T5_ = (void*)0;
		T5_ = ((void*) ((&(*dest).data[(*dest).Sup.len])));
		T6_ = (void*)0;
		T6_ = ((void*) ((*src).data));
		copyMem__i80o3k0SgEI5gTRCzYdyWAsystem(T5_, T6_, ((NI) ((NI)((*src).Sup.len + ((NI) 1)))));
		(*dest).Sup.len += (*src).Sup.len;
	}
	LA3_: ;
}
static N_INLINE(void, decRef__CnqcscfOCAX2jCHv3dRPDw_2py_utils)(void* p) {
	tyObject_PyObjectObj__aD5pkFWInXrZXinZ42cDEg* o;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	o = to__4gaYCHYBaCTIs6wfSrqsEApy_lib(p);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*o).ob_refcnt -= ((NI) 1);
	{
		if (!((*o).ob_refcnt == ((NI) 0))) goto LA3_;
		(*pyLib__nxKBiAukGMNwnUq9bpn9adyw).PyDealloc(p);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA3_: ;
	}BeforeRet_: ;
}
static N_INLINE(NimStringDesc*, getCurrentExceptionMsg__jLt3ACHcgYt9bbV4Vf9a5mgwsystem)(void) {
	NimStringDesc* result;
	NimThreadVars* NimTV_;
{	NimTV_ = (NimThreadVars*) GetThreadLocalVars();
	result = (NimStringDesc*)0;
	{
		if (!(NimTV_->currException__9bVPeDJlYTi9bQApZpfH8wjg == NIM_NIL)) goto LA3_;
		result = ((NimStringDesc*) NIM_NIL);
	}
	goto LA1_;
	LA3_: ;
	{
		result = copyString((*NimTV_->currException__9bVPeDJlYTi9bQApZpfH8wjg).message);
	}
	LA1_: ;
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void*, pythonException__Zl8uxcjgHaQZB15tcqXlTA)(Exception* e) {
	void* result;
	void* err;
	NimStringDesc* T1_;
	NimStringDesc* T2_;
	NimStringDesc* T3_;
	NimStringDesc* T4_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (void*)0;
	T1_ = (NimStringDesc*)0;
	T2_ = (NimStringDesc*)0;
	T2_ = cstrToNimstr((*e).name);
	T1_ = rawNewString((T2_ ? T2_->Sup.len : 0) + 6);
appendString(T1_, ((NimStringDesc*) &TM__LoH0foxqckmmftA2y2Dp9aw_8));
appendString(T1_, T2_);
	err = (*pyLib__nxKBiAukGMNwnUq9bpn9adyw).PyErr_NewException(nimToCStringConv(T1_), (*pyLib__nxKBiAukGMNwnUq9bpn9adyw).NimPyException, NIM_NIL);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	decRef__CnqcscfOCAX2jCHv3dRPDw_2py_utils(err);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T3_ = (NimStringDesc*)0;
	T4_ = (NimStringDesc*)0;
	T4_ = getCurrentExceptionMsg__jLt3ACHcgYt9bbV4Vf9a5mgwsystem();
	T3_ = rawNewString((T4_ ? T4_->Sup.len : 0) + 30);
appendString(T3_, ((NimStringDesc*) &TM__LoH0foxqckmmftA2y2Dp9aw_9));
appendString(T3_, T4_);
	(*pyLib__nxKBiAukGMNwnUq9bpn9adyw).PyErr_SetString(err, nimToCStringConv(T3_));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(void, popCurrentException)(void) {
	NimThreadVars* NimTV_;
	NimTV_ = (NimThreadVars*) GetThreadLocalVars();
	NimTV_->currException__9bVPeDJlYTi9bQApZpfH8wjg = (*NimTV_->currException__9bVPeDJlYTi9bQApZpfH8wjg).up;
}
N_LIB_PRIVATE N_CDECL(void*, iterNext__TMTCC6fq12K15WuKEA8z4w)(void* i) {
	void* result;
	tyObject_PyIteratorObj__GqRpYj9a7yzFP1C6hQf7QBQ* T2_;
	void* T3_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (void*)0;
	updateStackBottom__FRn3WNsRdbdvfuL6O7x1BQnimpy();
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T2_ = (tyObject_PyIteratorObj__GqRpYj9a7yzFP1C6hQf7QBQ*)0;
	T2_ = to__g6ziajH1gssveMp8KIs8MApy_lib(i);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	T3_ = (void*)0;
	T3_ = (*(*T2_).iRef).iter.ClP_0((*(*T2_).iRef).iter.ClE_0);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	result = T3_;
	if (NIM_UNLIKELY(*nimErr_)) {
		LA1_:;
		if (isObj(nimBorrowCurrentException()->Sup.m_type, (&NTI__XEycrCsme5C8CVWAYEcdBQ_))) {
			Exception* e;
			void* T7_;
			*nimErr_ = NIM_FALSE;
			e = getCurrentException();
			T7_ = (void*)0;
			T7_ = pythonException__Zl8uxcjgHaQZB15tcqXlTA(e);
			if (NIM_UNLIKELY(*nimErr_)) goto LA5_;
			result = T7_;
			popCurrentException();
			LA5_:;
		}
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, initModuleTypes__csb2z5UIH3D9cgBHISzH54g)(void* p, tyObject_PyModuleDesc__gBC8z6Ez5xj3dXoP0ylCRA* m) {
	tyProc__jvPpjMAkI9bwM1B9apOphnlA selfIter;
	void* T20_;
	int T21_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		NI i;
		NI colontmp_;
		NI T2_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		T2_ = ((*m).types ? (*m).types->Sup.len : 0);
		colontmp_ = T2_;
		i_2 = ((NI) 0);
		{
			while (1) {
				void* typ;
				tyObject_PyTypeObject3Obj__cRsC9bGvH9bX6A9aVx8UB6I5g* ty;
				int T5_;
				int T6_;
				if (!(i_2 < colontmp_)) goto LA4;
				i = i_2;
				typ = pyAlloc__1Aee2onoqwg9aFJWAasp3iAnimpy(((NI) 400));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				ty = to__5tJl9a9cvcVqYJFbXrlgYbfApy_lib(typ);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				(*ty).tp_name = nimToCStringConv((*m).types->data[i].fullName);
				(*ty).tp_basicsize = ((NI) ((NI32)(((int) ((*m).types->data[i].origSize)) - ((int) 8))));
				(*ty).tp_flags = ((unsigned long) 131563);
				(*ty).tp_doc = (*m).types->data[i].doc;
				(*ty).tp_new = (*m).types->data[i].newFunc;
				(*ty).tp_free = freeNimObj__jz2epPJWRa0T6WbzV9cD4Og;
				(*ty).tp_dealloc = destructNimObj__5aiupm4TAhj22Yu9cWwwuVg;
				T5_ = (int)0;
				T5_ = (*pyLib__nxKBiAukGMNwnUq9bpn9adyw).PyType_Ready(((tyObject_PyTypeObject3Obj__cRsC9bGvH9bX6A9aVx8UB6I5g*) (typ)));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				(void)(T5_);
				incRef__CnqcscfOCAX2jCHv3dRPDwpy_utils(typ);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T6_ = (int)0;
				T6_ = (*pyLib__nxKBiAukGMNwnUq9bpn9adyw).PyModule_AddObject(p, (*m).types->data[i].name, typ);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				(void)(T6_);
				i_2 += ((NI) 1);
			} LA4: ;
		}
	}
	{
		NI T9_;
		void* T12_;
		T9_ = ((*m).iterators ? (*m).iterators->Sup.len : 0);
		if (!!((T9_ == ((NI) 0)))) goto LA10_;
		T12_ = (void*)0;
		T12_ = symAddr__ALH9bdNwXEzg7MPq4PA9csvw((*pyLib__nxKBiAukGMNwnUq9bpn9adyw).module, "PyObject_SelfIter");
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		selfIter = ((tyProc__jvPpjMAkI9bwM1B9apOphnlA) (T12_));
	}
	goto LA7_;
	LA10_: ;
	{
		selfIter = NIM_NIL;
	}
	LA7_: ;
	{
		NI i_3;
		NI colontmp__2;
		NI T15_;
		NI i_4;
		i_3 = (NI)0;
		colontmp__2 = (NI)0;
		T15_ = ((*m).iterators ? (*m).iterators->Sup.len : 0);
		colontmp__2 = T15_;
		i_4 = ((NI) 0);
		{
			while (1) {
				void* typ_2;
				tyObject_PyTypeObject3Obj__cRsC9bGvH9bX6A9aVx8UB6I5g* ty_2;
				int T18_;
				int T19_;
				if (!(i_4 < colontmp__2)) goto LA17;
				i_3 = i_4;
				typ_2 = pyAlloc__1Aee2onoqwg9aFJWAasp3iAnimpy(((NI) 400));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				ty_2 = to__5tJl9a9cvcVqYJFbXrlgYbfApy_lib(typ_2);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				(*ty_2).tp_name = (*m).iterators->data[i_3].name;
				(*ty_2).tp_basicsize = ((NI) 32);
				(*ty_2).tp_flags = ((unsigned long) 131563);
				(*ty_2).tp_doc = (*m).iterators->data[i_3].doc;
				(*ty_2).tp_new = (*m).iterators->data[i_3].newFunc;
				(*ty_2).tp_free = freeNimObj__jz2epPJWRa0T6WbzV9cD4Og;
				(*ty_2).tp_dealloc = destructNimIterator__5aiupm4TAhj22Yu9cWwwuVg_2;
				(*ty_2).tp_iternext = iterNext__TMTCC6fq12K15WuKEA8z4w;
				(*ty_2).tp_iter = selfIter;
				T18_ = (int)0;
				T18_ = (*pyLib__nxKBiAukGMNwnUq9bpn9adyw).PyType_Ready(((tyObject_PyTypeObject3Obj__cRsC9bGvH9bX6A9aVx8UB6I5g*) (typ_2)));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				(void)(T18_);
				incRef__CnqcscfOCAX2jCHv3dRPDwpy_utils(typ_2);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T19_ = (int)0;
				T19_ = (*pyLib__nxKBiAukGMNwnUq9bpn9adyw).PyModule_AddObject(p, (*m).iterators->data[i_3].name, typ_2);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				(void)(T19_);
				i_4 += ((NI) 1);
			} LA17: ;
		}
	}
	T20_ = (void*)0;
	T20_ = (*pyLib__nxKBiAukGMNwnUq9bpn9adyw).PyErr_NewException("nimpy.NimPyException", NIM_NIL, NIM_NIL);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*pyLib__nxKBiAukGMNwnUq9bpn9adyw).NimPyException = T20_;
	T21_ = (int)0;
	T21_ = (*pyLib__nxKBiAukGMNwnUq9bpn9adyw).PyModule_AddObject(p, "NimPyException", (*pyLib__nxKBiAukGMNwnUq9bpn9adyw).NimPyException);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(void)(T21_);
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, initModule2__QOPr6RYgxP9c8n2lZVbiDwA)(tyObject_PyModuleDesc__gBC8z6Ez5xj3dXoP0ylCRA* m) {
	tyProc__2ujOETN3z9btuXStkbh8Cdg Py_InitModule4;
	void* T1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	initCommon__QOPr6RYgxP9c8n2lZVbiDwA_2(m);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	Py_InitModule4 = (tyProc__2ujOETN3z9btuXStkbh8Cdg)0;
	T1_ = (void*)0;
	T1_ = symAddr__ALH9bdNwXEzg7MPq4PA9csvw((*pyLib__nxKBiAukGMNwnUq9bpn9adyw).module, "Py_InitModule4");
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	Py_InitModule4 = ((tyProc__2ujOETN3z9btuXStkbh8Cdg) (T1_));
	{
		void* T6_;
		if (!(Py_InitModule4 == 0)) goto LA4_;
		T6_ = (void*)0;
		T6_ = symAddr__ALH9bdNwXEzg7MPq4PA9csvw((*pyLib__nxKBiAukGMNwnUq9bpn9adyw).module, "Py_InitModule4_64");
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		Py_InitModule4 = ((tyProc__2ujOETN3z9btuXStkbh8Cdg) (T6_));
	}
	LA4_: ;
	{
		void* py;
		NCSTRING T11_;
		if (!!((Py_InitModule4 == 0))) goto LA9_;
		T11_ = (NCSTRING)0;
		T11_ = (*m).name;
		py = Py_InitModule4(T11_, (&(*m).methods->data[((NI) 0)]), (*m).doc, NIM_NIL, ((int) 1013));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		initModuleTypes__csb2z5UIH3D9cgBHISzH54g(py, (&(*m)));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA9_: ;
	}BeforeRet_: ;
}
static N_INLINE(void, initPyModule__DD6uuT0cNlotk9a8nyu9bE7wnimpy)(tyObject_PyModuleDef__QZDAPlXtpUM7Y9asxNBUBwg* p, tyObject_PyModuleDesc__gBC8z6Ez5xj3dXoP0ylCRA* m) {
	(*p).m_base.ob_base.ob_refcnt = ((NI) 1);
	(*p).m_name = (*m).name;
	(*p).m_doc = (*m).doc;
	(*p).m_size = ((NI) -1);
	(*p).m_methods = (&(*m).methods->data[((NI) 0)]);
}
static N_INLINE(tyObject_PyModuleDef__QZDAPlXtpUM7Y9asxNBUBwg*, to__wt9cwaSUiMGJ5i7qopVibqApy_lib)(void* p) {
	tyObject_PyModuleDef__QZDAPlXtpUM7Y9asxNBUBwg* result;
	result = (tyObject_PyModuleDef__QZDAPlXtpUM7Y9asxNBUBwg*)0;
	result = ((tyObject_PyModuleDef__QZDAPlXtpUM7Y9asxNBUBwg*) ((NU)((NU64)(((NU) (ptrdiff_t) (p))) + (NU64)(pyObjectStartOffset__g20dGCi2MffsHqmxIpqX7Q))));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void*, initModule3__b5gVEAN0cbSksVFIpPmViA)(tyObject_PyModuleDesc__gBC8z6Ez5xj3dXoP0ylCRA* m) {
	void* result;
	tyProc__BEMKLd49c5qNHqmldA6aVaw PyModule_Create2;
	void* T1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (void*)0;
	initCommon__QOPr6RYgxP9c8n2lZVbiDwA_2(m);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	PyModule_Create2 = (tyProc__BEMKLd49c5qNHqmldA6aVaw)0;
	T1_ = (void*)0;
	T1_ = symAddr__ALH9bdNwXEzg7MPq4PA9csvw((*pyLib__nxKBiAukGMNwnUq9bpn9adyw).module, "PyModule_Create2");
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	PyModule_Create2 = ((tyProc__BEMKLd49c5qNHqmldA6aVaw) (T1_));
	{
		void* T6_;
		if (!(PyModule_Create2 == 0)) goto LA4_;
		T6_ = (void*)0;
		T6_ = symAddr__ALH9bdNwXEzg7MPq4PA9csvw((*pyLib__nxKBiAukGMNwnUq9bpn9adyw).module, "PyModule_Create2TraceRefs");
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		PyModule_Create2 = ((tyProc__BEMKLd49c5qNHqmldA6aVaw) (T6_));
	}
	LA4_: ;
	{
		void* pymod;
		tyObject_PyModuleDef__QZDAPlXtpUM7Y9asxNBUBwg* T11_;
		if (!!((PyModule_Create2 == 0))) goto LA9_;
		pymod = pyAlloc__1Aee2onoqwg9aFJWAasp3iAnimpy(((NI) 104));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T11_ = (tyObject_PyModuleDef__QZDAPlXtpUM7Y9asxNBUBwg*)0;
		T11_ = to__wt9cwaSUiMGJ5i7qopVibqApy_lib(pymod);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		initPyModule__DD6uuT0cNlotk9a8nyu9bE7wnimpy(T11_, m);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = PyModule_Create2(pymod, ((int) 3));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		initModuleTypes__csb2z5UIH3D9cgBHISzH54g(result, (&(*m)));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA9_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, addMethod__TpUnmhxGlZgxTBTLPiE3nw)(tyObject_PyModuleDesc__gBC8z6Ez5xj3dXoP0ylCRA* m, NCSTRING name, NCSTRING doc, tyProc__uQWqJp3WAx8fOY1h9aCwjIg f) {
	tyObject_PyMethodDef__9aWi1PsmvCuTKIYDHHnhfcw def;
	NI T1_;
	nimZeroMem((void*)(&def), sizeof(tyObject_PyMethodDef__9aWi1PsmvCuTKIYDHHnhfcw));
	def.ml_name = name;
	def.ml_meth = f;
	def.ml_flags = ((int) 3);
	def.ml_doc = doc;
	(*m).methods = (tySequence__E2XyP5e7Jr9aMpJMjdz5Tkg*) incrSeqV3((TGenericSeq*)((*m).methods), (&NTI__E2XyP5e7Jr9aMpJMjdz5Tkg_));
	T1_ = (*m).methods->Sup.len++;
	(*m).methods->data[T1_] = def;
}
static N_INLINE(void, GC_disable__RsY2eAkO9aEvlDhb7ZyRF8gsystem)(void) {
	NimThreadVars* NimTV_;
	NimTV_ = (NimThreadVars*) GetThreadLocalVars();
	NimTV_->gch__IcYaEuuWivYAS86vFMTS3Q.recGcLock += ((NI) 1);
}
static N_INLINE(void, GC_enable__RsY2eAkO9aEvlDhb7ZyRF8g_2system)(void) {
	NimThreadVars* NimTV_;
{	NimTV_ = (NimThreadVars*) GetThreadLocalVars();
	{
		tyObject_AssertionDefect__PtYxPmY5X0dorfvxAFbJpQ* T5_;
		if (!(NimTV_->gch__IcYaEuuWivYAS86vFMTS3Q.recGcLock <= ((NI) 0))) goto LA3_;
		T5_ = (tyObject_AssertionDefect__PtYxPmY5X0dorfvxAFbJpQ*)0;
		T5_ = (tyObject_AssertionDefect__PtYxPmY5X0dorfvxAFbJpQ*) newObj((&NTI__S8DV6hfcgC9c0IiUsAoR29cQ_), sizeof(tyObject_AssertionDefect__PtYxPmY5X0dorfvxAFbJpQ));
		(*T5_).Sup.Sup.Sup.m_type = (&NTI__PtYxPmY5X0dorfvxAFbJpQ_);
		(*T5_).Sup.Sup.name = "AssertionDefect";
		(*T5_).Sup.Sup.message = copyString(((NimStringDesc*) &TM__LoH0foxqckmmftA2y2Dp9aw_13));
		(*T5_).Sup.Sup.parent = NIM_NIL;
		raiseExceptionEx((Exception*)T5_, "AssertionDefect", "GC_enable", "gc_ms.nim", 500);
		goto BeforeRet_;
	}
	LA3_: ;
	NimTV_->gch__IcYaEuuWivYAS86vFMTS3Q.recGcLock -= ((NI) 1);
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, pyDictHasKey__gPPk6uJ9bWMpMyW6uS9azQWg)(void* o, NCSTRING k) {
	NIM_BOOL result;
	void* pk;
	int T1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	pk = (*pyLib__nxKBiAukGMNwnUq9bpn9adyw).PyUnicode_FromString(k);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T1_ = (int)0;
	T1_ = (*pyLib__nxKBiAukGMNwnUq9bpn9adyw).PyDict_Contains(o, pk);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	result = (T1_ == ((NI32) 1));
	decRef__CnqcscfOCAX2jCHv3dRPDw_2py_utils(pk);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, eqeq___aqip9cmQIuefPKdd25wuEEwsystem)(NCSTRING x, NCSTRING y) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	{
		if (!(((void*) (x)) == ((void*) (y)))) goto LA3_;
		result = NIM_TRUE;
	}
	goto LA1_;
	LA3_: ;
	{
		NIM_BOOL T6_;
		T6_ = (NIM_BOOL)0;
		T6_ = (x == 0);
		if (T6_) goto LA7_;
		T6_ = (y == 0);
		LA7_: ;
		if (!T6_) goto LA8_;
		result = NIM_FALSE;
	}
	goto LA1_;
	LA8_: ;
	{
		int T11_;
		T11_ = (int)0;
		T11_ = strcmp(x, y);
		result = (T11_ == ((NI32) 0));
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, eqeq___gPPk6uJ9bWMpMyW6uS9azQWg_2)(void* o, NCSTRING k) {
	NIM_BOOL result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	{
		NCSTRING T5_;
		if (!((*pyLib__nxKBiAukGMNwnUq9bpn9adyw).PyUnicode_CompareWithASCIIString == 0)) goto LA3_;
		T5_ = (NCSTRING)0;
		T5_ = (*pyLib__nxKBiAukGMNwnUq9bpn9adyw).PyString_AsString(o);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = eqeq___aqip9cmQIuefPKdd25wuEEwsystem(T5_, k);
	}
	goto LA1_;
	LA3_: ;
	{
		int T7_;
		T7_ = (int)0;
		T7_ = (*pyLib__nxKBiAukGMNwnUq9bpn9adyw).PyUnicode_CompareWithASCIIString(o, k);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = (T7_ == ((NI32) 0));
	}
	LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, pyObjToNimStr__eEwHrfmOllfqMcr3IQY2zQ)(void* o, NimStringDesc** v) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		NIM_BOOL T3_;
		NIM_BOOL T4_;
		tyObject_PyTypeObject3Obj__cRsC9bGvH9bX6A9aVx8UB6I5g* typ;
		NimStringDesc* errString;
		Exception* T7_;
		tyArray__nHXaesL0DJZHyVS07ARPRA T8_;
		T3_ = (NIM_BOOL)0;
		T3_ = pyStringToNim__9cjH8eaYe0aMdbQ9bg4rwiDw(o, v);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T4_ = (NIM_BOOL)0;
		T4_ = NIM_UNLIKELY(!(T3_));
		if (!T4_) goto LA5_;
		typ = ((tyObject_PyTypeObject3Obj__cRsC9bGvH9bX6A9aVx8UB6I5g*) ((*((tyObject_PyObjectObj__aD5pkFWInXrZXinZ42cDEg*) (o))).ob_type));
		errString = copyString(((NimStringDesc*) &TM__LoH0foxqckmmftA2y2Dp9aw_16));
		T7_ = (Exception*)0;
		T7_ = (Exception*) newObj((&NTI__vU9aO9cTqOMn6CBzhV8rX7Sw_), sizeof(Exception));
		(*T7_).Sup.m_type = (&NTI__XEycrCsme5C8CVWAYEcdBQ_);
		(*T7_).name = "Exception";
		nimZeroMem((void*)T8_, sizeof(tyArray__nHXaesL0DJZHyVS07ARPRA));
		T8_[0] = cstrToNimstr((*typ).tp_name);
		(*T7_).message = nsuFormatOpenArray(errString, T8_, 1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*T7_).parent = NIM_NIL;
		raiseExceptionEx((Exception*)T7_, "Exception", "pyObjToNimStr", "nimpy.nim", 367);
		goto BeforeRet_;
	}
	LA5_: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___rh9a6aY6urF0Nohf9aeDyH4Q)(void* p) {
	NimStringDesc* result;
	void* s;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NimStringDesc*)0;
	s = (*pyLib__nxKBiAukGMNwnUq9bpn9adyw).PyObject_Str(p);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	pyObjToNimStr__eEwHrfmOllfqMcr3IQY2zQ(s, (&result));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	decRef__CnqcscfOCAX2jCHv3dRPDw_2py_utils(s);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, verifyArgs__8sVYJT4zfbIXMNXtJ2cTng)(void* argTuple, void* kwargsDict, NI argsLen, NI argsLenReq, NCSTRING* argNames, NI argNamesLen_0, NimStringDesc* funcName) {
	NIM_BOOL result;
	NI nargs;
	NI nkwargs;
	NI sz;
	NI nkwarg_left;
NIM_BOOL oldNimErrFin73_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	{
		if (!(argTuple == 0)) goto LA3_;
		nargs = ((NI) 0);
	}
	goto LA1_;
	LA3_: ;
	{
		nargs = (*pyLib__nxKBiAukGMNwnUq9bpn9adyw).PyTuple_Size(argTuple);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA1_: ;
	{
		if (!(kwargsDict == 0)) goto LA8_;
		nkwargs = ((NI) 0);
	}
	goto LA6_;
	LA8_: ;
	{
		nkwargs = (*pyLib__nxKBiAukGMNwnUq9bpn9adyw).PyDict_Size(kwargsDict);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA6_: ;
	sz = (NI)(nargs + nkwargs);
	nkwarg_left = nkwargs;
	{
		NIM_BOOL T15_;
		if (!(argsLenReq < argsLen)) goto LA13_;
		T15_ = (NIM_BOOL)0;
		T15_ = (argsLenReq <= sz);
		if (!(T15_)) goto LA16_;
		T15_ = (sz <= argsLen);
		LA16_: ;
		result = T15_;
	}
	goto LA11_;
	LA13_: ;
	{
		result = (sz == argsLen);
	}
	LA11_: ;
	{
		NimStringDesc* T22_;
		NimStringDesc* T23_;
		NimStringDesc* T24_;
		if (!!(result)) goto LA20_;
		GC_disable__RsY2eAkO9aEvlDhb7ZyRF8gsystem();
		T22_ = (NimStringDesc*)0;
		T23_ = (NimStringDesc*)0;
		T23_ = nimIntToStr(argsLen);
		T24_ = (NimStringDesc*)0;
		T24_ = nimIntToStr(sz);
		T22_ = rawNewString((funcName ? funcName->Sup.len : 0) + (T23_ ? T23_->Sup.len : 0) + (T24_ ? T24_->Sup.len : 0) + 36);
appendString(T22_, funcName);
appendString(T22_, ((NimStringDesc*) &TM__LoH0foxqckmmftA2y2Dp9aw_10));
appendString(T22_, T23_);
appendString(T22_, ((NimStringDesc*) &TM__LoH0foxqckmmftA2y2Dp9aw_11));
appendString(T22_, T24_);
appendString(T22_, ((NimStringDesc*) &TM__LoH0foxqckmmftA2y2Dp9aw_12));
		(*pyLib__nxKBiAukGMNwnUq9bpn9adyw).PyErr_SetString((*pyLib__nxKBiAukGMNwnUq9bpn9adyw).PyExc_TypeError, nimToCStringConv(T22_));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		GC_enable__RsY2eAkO9aEvlDhb7ZyRF8g_2system();
		result = NIM_FALSE;
		goto BeforeRet_;
	}
	LA20_: ;
	{
		NI i;
		NI i_2;
		i = (NI)0;
		i_2 = ((NI) 0);
		{
			while (1) {
				if (!(i_2 < sz)) goto LA27;
				i = i_2;
				{
					{
						if (!(i < nargs)) goto LA31_;
						goto LA28;
					}
					goto LA29_;
					LA31_: ;
					{
						NIM_BOOL T34_;
						T34_ = (NIM_BOOL)0;
						T34_ = (i < argsLenReq);
						if (!(T34_)) goto LA35_;
						T34_ = (((NI) 0) < nkwargs);
						LA35_: ;
						if (!T34_) goto LA36_;
						{
							NIM_BOOL T40_;
							NimStringDesc* T43_;
							NimStringDesc* T44_;
							T40_ = (NIM_BOOL)0;
							T40_ = pyDictHasKey__gPPk6uJ9bWMpMyW6uS9azQWg(kwargsDict, argNames[i]);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							if (!!(T40_)) goto LA41_;
							GC_disable__RsY2eAkO9aEvlDhb7ZyRF8gsystem();
							T43_ = (NimStringDesc*)0;
							T44_ = (NimStringDesc*)0;
							T44_ = cstrToNimstr(argNames[i]);
							T43_ = rawNewString((funcName ? funcName->Sup.len : 0) + (T44_ ? T44_->Sup.len : 0) + 43);
appendString(T43_, funcName);
appendString(T43_, ((NimStringDesc*) &TM__LoH0foxqckmmftA2y2Dp9aw_14));
appendString(T43_, T44_);
							(*pyLib__nxKBiAukGMNwnUq9bpn9adyw).PyErr_SetString((*pyLib__nxKBiAukGMNwnUq9bpn9adyw).PyExc_TypeError, nimToCStringConv(T43_));
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							GC_enable__RsY2eAkO9aEvlDhb7ZyRF8g_2system();
							result = NIM_FALSE;
							goto BeforeRet_;
						}
						goto LA38_;
						LA41_: ;
						{
							nkwarg_left -= ((NI) 1);
						}
						LA38_: ;
					}
					goto LA29_;
					LA36_: ;
					{
						if (!(((NI) 0) < nkwargs)) goto LA47_;
						{
							NIM_BOOL T51_;
							T51_ = (NIM_BOOL)0;
							T51_ = pyDictHasKey__gPPk6uJ9bWMpMyW6uS9azQWg(kwargsDict, argNames[i]);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							if (!T51_) goto LA52_;
							nkwarg_left -= ((NI) 1);
						}
						LA52_: ;
					}
					goto LA29_;
					LA47_: ;
					LA29_: ;
				} LA28: ;
				i_2 += ((NI) 1);
			} LA27: ;
		}
	}
	{
		if (!(((NI) 0) < nkwarg_left)) goto LA56_;
		{
			if (!(((NI) 0) < nargs)) goto LA60_;
			{
				NI i_3;
				NI res;
				i_3 = (NI)0;
				res = ((NI) 0);
				{
					while (1) {
						if (!(res <= nargs)) goto LA64;
						i_3 = res;
						{
							NIM_BOOL T67_;
							NimStringDesc* T70_;
							NimStringDesc* T71_;
							T67_ = (NIM_BOOL)0;
							T67_ = pyDictHasKey__gPPk6uJ9bWMpMyW6uS9azQWg(kwargsDict, argNames[i_3]);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							if (!T67_) goto LA68_;
							GC_disable__RsY2eAkO9aEvlDhb7ZyRF8gsystem();
							T70_ = (NimStringDesc*)0;
							T71_ = (NimStringDesc*)0;
							T71_ = cstrToNimstr(argNames[i_3]);
							T70_ = rawNewString((funcName ? funcName->Sup.len : 0) + (T71_ ? T71_->Sup.len : 0) + 36);
appendString(T70_, funcName);
appendString(T70_, ((NimStringDesc*) &TM__LoH0foxqckmmftA2y2Dp9aw_15));
appendString(T70_, T71_);
							(*pyLib__nxKBiAukGMNwnUq9bpn9adyw).PyErr_SetString((*pyLib__nxKBiAukGMNwnUq9bpn9adyw).PyExc_TypeError, nimToCStringConv(T70_));
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							GC_enable__RsY2eAkO9aEvlDhb7ZyRF8g_2system();
							result = NIM_FALSE;
							goto BeforeRet_;
						}
						LA68_: ;
						res += ((NI) 1);
					} LA64: ;
				}
			}
		}
		LA60_: ;
		{
			void* k;
			void* it;
			k = (void*)0;
			it = (*pyLib__nxKBiAukGMNwnUq9bpn9adyw).PyObject_GetIter(kwargsDict);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			{
				while (1) {
					void* i_4;
					NIM_BOOL found;
					i_4 = (*pyLib__nxKBiAukGMNwnUq9bpn9adyw).PyIter_Next(it);
					if (NIM_UNLIKELY(*nimErr_)) goto LA73_;
					{
						if (!(i_4 == 0)) goto LA78_;
						goto LA74;
					}
					LA78_: ;
					k = i_4;
					found = NIM_FALSE;
					{
						NCSTRING* a;
						NI i_5;
						a = (NCSTRING*)0;
						i_5 = ((NI) 0);
						{
							while (1) {
								if (!(i_5 < argNamesLen_0)) goto LA82;
								a = (&argNames[i_5]);
								{
									NIM_BOOL T85_;
									T85_ = (NIM_BOOL)0;
									T85_ = eqeq___gPPk6uJ9bWMpMyW6uS9azQWg_2(k, (*a));
									if (NIM_UNLIKELY(*nimErr_)) goto LA73_;
									if (!T85_) goto LA86_;
									found = NIM_TRUE;
									goto LA80;
								}
								LA86_: ;
								i_5 += ((NI) 1);
							} LA82: ;
						}
					} LA80: ;
					{
						NIM_BOOL T90_;
						T90_ = (NIM_BOOL)0;
						T90_ = NIM_LIKELY(found);
						if (!T90_) goto LA91_;
						decRef__CnqcscfOCAX2jCHv3dRPDw_2py_utils(k);
						if (NIM_UNLIKELY(*nimErr_)) goto LA73_;
					}
					goto LA88_;
					LA91_: ;
					{
						NimStringDesc* kStr;
						NimStringDesc* T94_;
						kStr = dollar___rh9a6aY6urF0Nohf9aeDyH4Q(k);
						if (NIM_UNLIKELY(*nimErr_)) goto LA73_;
						decRef__CnqcscfOCAX2jCHv3dRPDw_2py_utils(k);
						if (NIM_UNLIKELY(*nimErr_)) goto LA73_;
						GC_disable__RsY2eAkO9aEvlDhb7ZyRF8gsystem();
						T94_ = (NimStringDesc*)0;
						T94_ = rawNewString((funcName ? funcName->Sup.len : 0) + (kStr ? kStr->Sup.len : 0) + 38);
appendString(T94_, funcName);
appendString(T94_, ((NimStringDesc*) &TM__LoH0foxqckmmftA2y2Dp9aw_17));
appendString(T94_, kStr);
						(*pyLib__nxKBiAukGMNwnUq9bpn9adyw).PyErr_SetString((*pyLib__nxKBiAukGMNwnUq9bpn9adyw).PyExc_TypeError, nimToCStringConv(T94_));
						if (NIM_UNLIKELY(*nimErr_)) goto LA73_;
						GC_enable__RsY2eAkO9aEvlDhb7ZyRF8g_2system();
						result = NIM_FALSE;
						decRef__CnqcscfOCAX2jCHv3dRPDw_2py_utils(it);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						goto BeforeRet_;
					}
					LA88_: ;
				}
			} LA74: ;
			{
				LA73_:;
			}
			{
				oldNimErrFin73_ = *nimErr_; *nimErr_ = NIM_FALSE;
				decRef__CnqcscfOCAX2jCHv3dRPDw_2py_utils(it);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				*nimErr_ = oldNimErrFin73_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
	}
	LA56_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void*, getPyArg__NkJdiXLR244lRh2jwrl9clw)(void* argTuple, void* argDict, NI argIdx, NCSTRING argName) {
	void* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (void*)0;
	{
		NI T3_;
		T3_ = (NI)0;
		T3_ = (*pyLib__nxKBiAukGMNwnUq9bpn9adyw).PyTuple_Size(argTuple);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!(argIdx < T3_)) goto LA4_;
		result = (*pyLib__nxKBiAukGMNwnUq9bpn9adyw).PyTuple_GetItem(argTuple, argIdx);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA4_: ;
	{
		NIM_BOOL T8_;
		T8_ = (NIM_BOOL)0;
		T8_ = (result == 0);
		if (!(T8_)) goto LA9_;
		T8_ = !((argDict == 0));
		LA9_: ;
		if (!T8_) goto LA10_;
		result = (*pyLib__nxKBiAukGMNwnUq9bpn9adyw).PyDict_GetItemString(argDict, argName);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA10_: ;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(void, pyObjToNim__b0mmTXdtWy9av9cY5rqshVIAnimpy)(void* o, NimStringDesc** v) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	pyObjToNimStr__eEwHrfmOllfqMcr3IQY2zQ(o, v);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, parseArg__icg9aGIbXA4DEIGHwq7rmAA)(void* argTuple, void* kwargsDict, NI argIdx, NCSTRING argName, NimStringDesc** result) {
	void* arg;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	arg = getPyArg__NkJdiXLR244lRh2jwrl9clw(argTuple, kwargsDict, argIdx, argName);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		if (!!((arg == 0))) goto LA3_;
		pyObjToNim__b0mmTXdtWy9av9cY5rqshVIAnimpy(arg, result);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA3_: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, raiseConversionError__z8PFXg0IwDVDHYuZ87EtFg_2)(NimStringDesc* toType) {
	Exception* T1_;
	NimStringDesc* T2_;
{	T1_ = (Exception*)0;
	T1_ = (Exception*) newObj((&NTI__vU9aO9cTqOMn6CBzhV8rX7Sw_), sizeof(Exception));
	(*T1_).Sup.m_type = (&NTI__XEycrCsme5C8CVWAYEcdBQ_);
	(*T1_).name = "Exception";
	T2_ = (NimStringDesc*)0;
	T2_ = rawNewString((toType ? toType->Sup.len : 0) + 32);
appendString(T2_, ((NimStringDesc*) &TM__LoH0foxqckmmftA2y2Dp9aw_18));
appendString(T2_, toType);
	(*T1_).message = T2_;
	(*T1_).parent = NIM_NIL;
	raiseExceptionEx((Exception*)T1_, "Exception", "raiseConversionError", "nimpy.nim", 407);
	goto BeforeRet_;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, clearAndRaiseConversionError__z8PFXg0IwDVDHYuZ87EtFg)(NimStringDesc* toType) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	(*pyLib__nxKBiAukGMNwnUq9bpn9adyw).PyErr_Clear();
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	raiseConversionError__z8PFXg0IwDVDHYuZ87EtFg_2(toType);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
static N_INLINE(void, pyObjToNim__BgfcSbBa0ZAfhYwnCVXo7Qnimpy)(void* o, NI* v) {
	NI64 ll;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	ll = (*pyLib__nxKBiAukGMNwnUq9bpn9adyw).PyLong_AsLongLong(o);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		if (!(ll == IL64(-1))) goto LA3_;
		{
			void* T7_;
			NIM_BOOL T8_;
			T7_ = (void*)0;
			T7_ = (*pyLib__nxKBiAukGMNwnUq9bpn9adyw).PyErr_Occurred();
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T8_ = (NIM_BOOL)0;
			T8_ = NIM_UNLIKELY(!((T7_ == 0)));
			if (!T8_) goto LA9_;
			clearAndRaiseConversionError__z8PFXg0IwDVDHYuZ87EtFg(((NimStringDesc*) &TM__LoH0foxqckmmftA2y2Dp9aw_19));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA9_: ;
	}
	LA3_: ;
	(*v) = ((NI) (ll));
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, parseArg__cwIhlVGWevUibQ2Fse0b8Q)(void* argTuple, void* kwargsDict, NI argIdx, NCSTRING argName, NI* result) {
	void* arg;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	arg = getPyArg__NkJdiXLR244lRh2jwrl9clw(argTuple, kwargsDict, argIdx, argName);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		if (!!((arg == 0))) goto LA3_;
		pyObjToNim__BgfcSbBa0ZAfhYwnCVXo7Qnimpy(arg, result);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA3_: ;
	}BeforeRet_: ;
}
static N_INLINE(NIM_BOOL, checkObjSubclass__dy3LelvW4G2VSkE8TdlDDgpy_utils)(void* o, tyObject_PyTypeObject3Obj__cRsC9bGvH9bX6A9aVx8UB6I5g* ty) {
	NIM_BOOL result;
	tyObject_PyTypeObject3Obj__cRsC9bGvH9bX6A9aVx8UB6I5g* typ;
	NIM_BOOL T1_;
	int T3_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	typ = ((tyObject_PyTypeObject3Obj__cRsC9bGvH9bX6A9aVx8UB6I5g*) ((*((tyObject_PyObjectObj__aD5pkFWInXrZXinZ42cDEg*) (o))).ob_type));
	T1_ = (NIM_BOOL)0;
	T1_ = (ty == typ);
	if (T1_) goto LA2_;
	T3_ = (int)0;
	T3_ = (*pyLib__nxKBiAukGMNwnUq9bpn9adyw).PyType_IsSubtype(typ, ty);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T1_ = !((T3_ == ((NI32) 0)));
	LA2_: ;
	result = T1_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyTuple__hbPS8r7C9a0SBVkFBnwt1Ww, getListOrTupleAccessors__jPqUiLT6lERM4HqZerQlNg)(void* o) {
	tyTuple__hbPS8r7C9a0SBVkFBnwt1Ww result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	nimZeroMem((void*)(&result), sizeof(tyTuple__hbPS8r7C9a0SBVkFBnwt1Ww));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = checkObjSubclass__dy3LelvW4G2VSkE8TdlDDgpy_utils(o, (*pyLib__nxKBiAukGMNwnUq9bpn9adyw).PyList_Type);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!T3_) goto LA4_;
		result.Field0 = (*pyLib__nxKBiAukGMNwnUq9bpn9adyw).PyList_Size;
		result.Field1 = (*pyLib__nxKBiAukGMNwnUq9bpn9adyw).PyList_GetItem;
	}
	goto LA1_;
	LA4_: ;
	{
		NIM_BOOL T7_;
		T7_ = (NIM_BOOL)0;
		T7_ = checkObjSubclass__dy3LelvW4G2VSkE8TdlDDgpy_utils(o, (*pyLib__nxKBiAukGMNwnUq9bpn9adyw).PyTuple_Type);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!T7_) goto LA8_;
		result.Field0 = (*pyLib__nxKBiAukGMNwnUq9bpn9adyw).PyTuple_Size;
		result.Field1 = (*pyLib__nxKBiAukGMNwnUq9bpn9adyw).PyTuple_GetItem;
	}
	goto LA1_;
	LA8_: ;
	LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, pyObjToNimTuple__sbpAHhQHaYjDar4szDrUBw)(void* o, tyTuple__UV3llMMYFckfui8YMBuUZA* v) {
	tyTuple__hbPS8r7C9a0SBVkFBnwt1Ww T1_;
	tyProc__YRQqZC12s3573tRGP8MV3g getSize;
	tyProc__oPIasAghCTvCKmvkMeB1xQ getItem;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	T1_ = getListOrTupleAccessors__jPqUiLT6lERM4HqZerQlNg(o);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	getSize = T1_.Field0;
	getItem = T1_.Field1;
	{
		NIM_BOOL T4_;
		NI T6_;
		NI i;
		void* pf;
		void* pf_2;
		T4_ = (NIM_BOOL)0;
		T4_ = !((getSize == 0));
		if (!(T4_)) goto LA5_;
		T6_ = (NI)0;
		T6_ = getSize(o);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T4_ = (T6_ == ((NI) 2));
		LA5_: ;
		if (!T4_) goto LA7_;
		i = ((NI) 0);
		pf = getItem(o, i);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		pyObjToNim__b0mmTXdtWy9av9cY5rqshVIAnimpy(pf, (&(*v).Field0));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		i += ((NI) 1);
		pf_2 = getItem(o, i);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		pyObjToNim__b0mmTXdtWy9av9cY5rqshVIAnimpy(pf_2, (&(*v).Field1));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		i += ((NI) 1);
	}
	goto LA2_;
	LA7_: ;
	{
		raiseConversionError__z8PFXg0IwDVDHYuZ87EtFg_2(((NimStringDesc*) &TM__LoH0foxqckmmftA2y2Dp9aw_21));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA2_: ;
	}BeforeRet_: ;
}
static N_INLINE(void, pyObjToNim__9aiOIXLg9bPem2GgRNBbdOqQnimpy)(void* o, tyTuple__UV3llMMYFckfui8YMBuUZA* v) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	pyObjToNimTuple__sbpAHhQHaYjDar4szDrUBw(o, v);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, pyObjFillArray__dTckwJ1cCjsHKjqSIxaT5w)(void* o, tyProc__oPIasAghCTvCKmvkMeB1xQ getItem, tyTuple__UV3llMMYFckfui8YMBuUZA* v, NI vLen_0) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = vLen_0;
		i_2 = ((NI) 0);
		{
			while (1) {
				void* T4_;
				void* T5_;
				if (!(i_2 < colontmp_)) goto LA3;
				i = i_2;
				T4_ = (void*)0;
				T4_ = getItem(o, i);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T5_ = (void*)0;
				T5_ = T4_;
				pyObjToNim__9aiOIXLg9bPem2GgRNBbdOqQnimpy(T5_, (&v[i]));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, pyObjToNimSeq__HiI5OfaHZnKDblDYPhNteQ)(void* o, tySequence__4eQHGndY6XBYpFOH09apV8Q** v) {
	tyTuple__hbPS8r7C9a0SBVkFBnwt1Ww T1_;
	tyProc__YRQqZC12s3573tRGP8MV3g getSize;
	tyProc__oPIasAghCTvCKmvkMeB1xQ getItem;
	NI sz;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	T1_ = getListOrTupleAccessors__jPqUiLT6lERM4HqZerQlNg(o);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	getSize = T1_.Field0;
	getItem = T1_.Field1;
	{
		NIM_BOOL T4_;
		T4_ = (NIM_BOOL)0;
		T4_ = NIM_UNLIKELY((getSize == 0));
		if (!T4_) goto LA5_;
		raiseConversionError__z8PFXg0IwDVDHYuZ87EtFg_2(((NimStringDesc*) &TM__LoH0foxqckmmftA2y2Dp9aw_20));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA5_: ;
	sz = getSize(o);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*v) = newSeq__vM79c4uR4a0HcxFVMjZke9cw(((NI) (sz)));
	pyObjFillArray__dTckwJ1cCjsHKjqSIxaT5w(o, getItem, (*v)->data, ((*v) ? (*v)->Sup.len : 0));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
static N_INLINE(void, pyObjToNim__U8qvyTeMcnismWLmv7skCwnimpy)(void* o, tySequence__4eQHGndY6XBYpFOH09apV8Q** v) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	pyObjToNimSeq__HiI5OfaHZnKDblDYPhNteQ(o, v);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, parseArg__9aybV9ckGA17zxEqjolE9ar9cQ)(void* argTuple, void* kwargsDict, NI argIdx, NCSTRING argName, tySequence__4eQHGndY6XBYpFOH09apV8Q** result) {
	void* arg;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	arg = getPyArg__NkJdiXLR244lRh2jwrl9clw(argTuple, kwargsDict, argIdx, argName);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		if (!!((arg == 0))) goto LA3_;
		pyObjToNim__U8qvyTeMcnismWLmv7skCwnimpy(arg, result);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA3_: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void*, PyObject_CallObject__YcloOfKTa9aIW0IuyJyt1yg)(void* o) {
	void* result;
	void* args;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (void*)0;
	args = (*pyLib__nxKBiAukGMNwnUq9bpn9adyw).PyTuple_New(((NI) 0));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	result = (*pyLib__nxKBiAukGMNwnUq9bpn9adyw).PyObject_Call(o, args, NIM_NIL);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	decRef__CnqcscfOCAX2jCHv3dRPDw_2py_utils(args);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, isFilled__5Qpmu5QqwDY0esVXn6wf7wtables)(NI hcode) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = !((hcode == ((NI) 0)));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void*, strToPyObject__HrbiptnioAqtONeuJHPBSQ)(NimStringDesc* s) {
	void* result;
	NCSTRING cs;
	int ln;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (void*)0;
	cs = nimToCStringConv(s);
	ln = ((int) ((s ? s->Sup.len : 0)));
	result = (*pyLib__nxKBiAukGMNwnUq9bpn9adyw).Py_BuildValue("s#", cs, ln);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		if (!(result == 0)) goto LA3_;
		(*pyLib__nxKBiAukGMNwnUq9bpn9adyw).PyErr_Clear();
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = (*pyLib__nxKBiAukGMNwnUq9bpn9adyw).Py_BuildValue("y#", cs, ln);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA3_: ;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(void*, nimValueToPy__JCDkP8wgVvgrZH49cYEzgDAnimpy)(NimStringDesc* v) {
	void* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (void*)0;
	result = strToPyObject__HrbiptnioAqtONeuJHPBSQ(v);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, cannotSerializeErr__i9c8TXOdJNX0v1Y3vnKHHNQ)(NimStringDesc* k) {
	Exception* T1_;
	NimStringDesc* T2_;
{	T1_ = (Exception*)0;
	T1_ = (Exception*) newObj((&NTI__vU9aO9cTqOMn6CBzhV8rX7Sw_), sizeof(Exception));
	(*T1_).Sup.m_type = (&NTI__XEycrCsme5C8CVWAYEcdBQ_);
	(*T1_).name = "Exception";
	T2_ = (NimStringDesc*)0;
	T2_ = rawNewString((k ? k->Sup.len : 0) + 32);
appendString(T2_, ((NimStringDesc*) &TM__LoH0foxqckmmftA2y2Dp9aw_22));
appendString(T2_, k);
	(*T1_).message = T2_;
	(*T1_).parent = NIM_NIL;
	raiseExceptionEx((Exception*)T1_, "Exception", "cannotSerializeErr", "nimpy.nim", 792);
	goto BeforeRet_;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void*, nimTabToPy__7GcP1UPgFz7C9aCvCSgmnMw)(tyObject_Table__Ji6x6JQ0gVMaFr8AIk18Ug t) {
	void* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (void*)0;
	result = PyObject_CallObject__YcloOfKTa9aIW0IuyJyt1yg(((void*) ((*pyLib__nxKBiAukGMNwnUq9bpn9adyw).PyDict_Type)));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		NimStringDesc* k;
		NimStringDesc* v;
		NI L;
		k = (NimStringDesc*)0;
		v = (NimStringDesc*)0;
		L = len__5HyJrijzw6C9busX1MaqvCw(t);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			NI h;
			NI colontmp_;
			NI T3_;
			NI res;
			h = (NI)0;
			colontmp_ = (NI)0;
			T3_ = ((t.data ? t.data->Sup.len : 0)-1);
			colontmp_ = T3_;
			res = ((NI) 0);
			{
				while (1) {
					if (!(res <= colontmp_)) goto LA5;
					h = res;
					{
						NIM_BOOL T8_;
						void* vv;
						int ret;
						T8_ = (NIM_BOOL)0;
						T8_ = isFilled__5Qpmu5QqwDY0esVXn6wf7wtables(t.data->data[h].Field0);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						if (!T8_) goto LA9_;
						k = t.data->data[h].Field1;
						v = t.data->data[h].Field2;
						vv = nimValueToPy__JCDkP8wgVvgrZH49cYEzgDAnimpy(v);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						ret = (*pyLib__nxKBiAukGMNwnUq9bpn9adyw).PyDict_SetItemString(result, nimToCStringConv(k), vv);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						decRef__CnqcscfOCAX2jCHv3dRPDw_2py_utils(vv);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						{
							if (!!((ret == ((NI32) 0)))) goto LA13_;
							cannotSerializeErr__i9c8TXOdJNX0v1Y3vnKHHNQ(k);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						}
						LA13_: ;
					}
					LA9_: ;
					res += ((NI) 1);
				} LA5: ;
			}
		}
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, pyObjToNimTuple__7EKCxyrhk9a9cloWGT4ZNzng)(void* o, tyTuple__UV3llMMYFckfui8YMBuUZA* v) {
	tyTuple__hbPS8r7C9a0SBVkFBnwt1Ww T1_;
	tyProc__YRQqZC12s3573tRGP8MV3g getSize;
	tyProc__oPIasAghCTvCKmvkMeB1xQ getItem;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	T1_ = getListOrTupleAccessors__jPqUiLT6lERM4HqZerQlNg(o);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	getSize = T1_.Field0;
	getItem = T1_.Field1;
	{
		NIM_BOOL T4_;
		NI T6_;
		NI i;
		void* pf;
		void* pf_2;
		T4_ = (NIM_BOOL)0;
		T4_ = !((getSize == 0));
		if (!(T4_)) goto LA5_;
		T6_ = (NI)0;
		T6_ = getSize(o);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T4_ = (T6_ == ((NI) 2));
		LA5_: ;
		if (!T4_) goto LA7_;
		i = ((NI) 0);
		pf = getItem(o, i);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		pyObjToNim__b0mmTXdtWy9av9cY5rqshVIAnimpy(pf, (&(*v).Field0));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		i += ((NI) 1);
		pf_2 = getItem(o, i);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		pyObjToNim__b0mmTXdtWy9av9cY5rqshVIAnimpy(pf_2, (&(*v).Field1));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		i += ((NI) 1);
	}
	goto LA2_;
	LA7_: ;
	{
		raiseConversionError__z8PFXg0IwDVDHYuZ87EtFg_2(((NimStringDesc*) &TM__LoH0foxqckmmftA2y2Dp9aw_24));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA2_: ;
	}BeforeRet_: ;
}
static N_INLINE(void, pyObjToNim__zjhwUV5ThzEPk9c04z5QRRQnimpy)(void* o, tyTuple__UV3llMMYFckfui8YMBuUZA* v) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	pyObjToNimTuple__7EKCxyrhk9a9cloWGT4ZNzng(o, v);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, pyObjFillArray__oMb8yUZcSyWADPTVzBWC0g)(void* o, tyProc__oPIasAghCTvCKmvkMeB1xQ getItem, tyTuple__UV3llMMYFckfui8YMBuUZA* v, NI vLen_0) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = vLen_0;
		i_2 = ((NI) 0);
		{
			while (1) {
				void* T4_;
				void* T5_;
				if (!(i_2 < colontmp_)) goto LA3;
				i = i_2;
				T4_ = (void*)0;
				T4_ = getItem(o, i);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T5_ = (void*)0;
				T5_ = T4_;
				pyObjToNim__zjhwUV5ThzEPk9c04z5QRRQnimpy(T5_, (&v[i]));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, pyObjToNimSeq__oxdKUVR0NRPCxfEo19cIXGg)(void* o, tySequence__4eQHGndY6XBYpFOH09apV8Q** v) {
	tyTuple__hbPS8r7C9a0SBVkFBnwt1Ww T1_;
	tyProc__YRQqZC12s3573tRGP8MV3g getSize;
	tyProc__oPIasAghCTvCKmvkMeB1xQ getItem;
	NI sz;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	T1_ = getListOrTupleAccessors__jPqUiLT6lERM4HqZerQlNg(o);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	getSize = T1_.Field0;
	getItem = T1_.Field1;
	{
		NIM_BOOL T4_;
		T4_ = (NIM_BOOL)0;
		T4_ = NIM_UNLIKELY((getSize == 0));
		if (!T4_) goto LA5_;
		raiseConversionError__z8PFXg0IwDVDHYuZ87EtFg_2(((NimStringDesc*) &TM__LoH0foxqckmmftA2y2Dp9aw_23));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA5_: ;
	sz = getSize(o);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*v) = newSeq__aNAzke7xLA1lvAqdwdmLAw(((NI) (sz)));
	pyObjFillArray__oMb8yUZcSyWADPTVzBWC0g(o, getItem, (*v)->data, ((*v) ? (*v)->Sup.len : 0));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
static N_INLINE(void, pyObjToNim__Z03vdBvKOS0yvzQ0mescLwnimpy)(void* o, tySequence__4eQHGndY6XBYpFOH09apV8Q** v) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	pyObjToNimSeq__oxdKUVR0NRPCxfEo19cIXGg(o, v);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, parseArg__wdA9adISUBCG47SUuCxohqg)(void* argTuple, void* kwargsDict, NI argIdx, NCSTRING argName, tySequence__4eQHGndY6XBYpFOH09apV8Q** result) {
	void* arg;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	arg = getPyArg__NkJdiXLR244lRh2jwrl9clw(argTuple, kwargsDict, argIdx, argName);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		if (!!((arg == 0))) goto LA3_;
		pyObjToNim__Z03vdBvKOS0yvzQ0mescLwnimpy(arg, result);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA3_: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void*, nimArrToPy__QDmD9aT9b4YNs9aDHJ7tXGoEA)(NimStringDesc** s, NI sLen_0) {
	void* result;
	NI sz;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (void*)0;
	sz = sLen_0;
	result = (*pyLib__nxKBiAukGMNwnUq9bpn9adyw).PyList_New(sz);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		NI i;
		NI i_2;
		i = (NI)0;
		i_2 = ((NI) 0);
		{
			while (1) {
				void* o;
				int T4_;
				if (!(i_2 < sz)) goto LA3;
				i = i_2;
				o = nimValueToPy__JCDkP8wgVvgrZH49cYEzgDAnimpy(s[i]);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T4_ = (int)0;
				T4_ = (*pyLib__nxKBiAukGMNwnUq9bpn9adyw).PyList_SetItem(result, i, o);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				(void)(T4_);
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
	}BeforeRet_: ;
	return result;
}
static N_INLINE(void, pyObjToNim__FjLZIS6bmCNfbqp1u4mSjAnimpy)(void* o, NIM_BOOL* v) {
	int T1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	T1_ = (int)0;
	T1_ = (*pyLib__nxKBiAukGMNwnUq9bpn9adyw).PyObject_IsTrue(o);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*v) = ((T1_) != 0);
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, parseArg__LZY9aeACpjd5IJS4h2b8lqA)(void* argTuple, void* kwargsDict, NI argIdx, NCSTRING argName, NIM_BOOL* result) {
	void* arg;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	arg = getPyArg__NkJdiXLR244lRh2jwrl9clw(argTuple, kwargsDict, argIdx, argName);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		if (!!((arg == 0))) goto LA3_;
		pyObjToNim__FjLZIS6bmCNfbqp1u4mSjAnimpy(arg, result);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA3_: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, pyObjToNimTuple__UIJbc4J38ur9a2I8kPaUWkA)(void* o, tyTuple__UV3llMMYFckfui8YMBuUZA* v) {
	tyTuple__hbPS8r7C9a0SBVkFBnwt1Ww T1_;
	tyProc__YRQqZC12s3573tRGP8MV3g getSize;
	tyProc__oPIasAghCTvCKmvkMeB1xQ getItem;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	T1_ = getListOrTupleAccessors__jPqUiLT6lERM4HqZerQlNg(o);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	getSize = T1_.Field0;
	getItem = T1_.Field1;
	{
		NIM_BOOL T4_;
		NI T6_;
		NI i;
		void* pf;
		void* pf_2;
		T4_ = (NIM_BOOL)0;
		T4_ = !((getSize == 0));
		if (!(T4_)) goto LA5_;
		T6_ = (NI)0;
		T6_ = getSize(o);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T4_ = (T6_ == ((NI) 2));
		LA5_: ;
		if (!T4_) goto LA7_;
		i = ((NI) 0);
		pf = getItem(o, i);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		pyObjToNim__b0mmTXdtWy9av9cY5rqshVIAnimpy(pf, (&(*v).Field0));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		i += ((NI) 1);
		pf_2 = getItem(o, i);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		pyObjToNim__b0mmTXdtWy9av9cY5rqshVIAnimpy(pf_2, (&(*v).Field1));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		i += ((NI) 1);
	}
	goto LA2_;
	LA7_: ;
	{
		raiseConversionError__z8PFXg0IwDVDHYuZ87EtFg_2(((NimStringDesc*) &TM__LoH0foxqckmmftA2y2Dp9aw_26));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA2_: ;
	}BeforeRet_: ;
}
static N_INLINE(void, pyObjToNim__cmJozxzeVXanlnTuPUKNTAnimpy)(void* o, tyTuple__UV3llMMYFckfui8YMBuUZA* v) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	pyObjToNimTuple__UIJbc4J38ur9a2I8kPaUWkA(o, v);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, pyObjFillArray__ZDG0GY649bh2g6fiJ4Doqcw)(void* o, tyProc__oPIasAghCTvCKmvkMeB1xQ getItem, tyTuple__UV3llMMYFckfui8YMBuUZA* v, NI vLen_0) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = vLen_0;
		i_2 = ((NI) 0);
		{
			while (1) {
				void* T4_;
				void* T5_;
				if (!(i_2 < colontmp_)) goto LA3;
				i = i_2;
				T4_ = (void*)0;
				T4_ = getItem(o, i);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T5_ = (void*)0;
				T5_ = T4_;
				pyObjToNim__cmJozxzeVXanlnTuPUKNTAnimpy(T5_, (&v[i]));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, pyObjToNimSeq__RfZ7mE6aYkJbeVJjD5LHLg)(void* o, tySequence__4eQHGndY6XBYpFOH09apV8Q** v) {
	tyTuple__hbPS8r7C9a0SBVkFBnwt1Ww T1_;
	tyProc__YRQqZC12s3573tRGP8MV3g getSize;
	tyProc__oPIasAghCTvCKmvkMeB1xQ getItem;
	NI sz;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	T1_ = getListOrTupleAccessors__jPqUiLT6lERM4HqZerQlNg(o);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	getSize = T1_.Field0;
	getItem = T1_.Field1;
	{
		NIM_BOOL T4_;
		T4_ = (NIM_BOOL)0;
		T4_ = NIM_UNLIKELY((getSize == 0));
		if (!T4_) goto LA5_;
		raiseConversionError__z8PFXg0IwDVDHYuZ87EtFg_2(((NimStringDesc*) &TM__LoH0foxqckmmftA2y2Dp9aw_25));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA5_: ;
	sz = getSize(o);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*v) = newSeq__F7cOytKF8dCnFDv273qpMg(((NI) (sz)));
	pyObjFillArray__ZDG0GY649bh2g6fiJ4Doqcw(o, getItem, (*v)->data, ((*v) ? (*v)->Sup.len : 0));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
static N_INLINE(void, pyObjToNim__7qxhZAIvrwFRxsapLd0gHgnimpy)(void* o, tySequence__4eQHGndY6XBYpFOH09apV8Q** v) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	pyObjToNimSeq__RfZ7mE6aYkJbeVJjD5LHLg(o, v);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, parseArg__T8XU9cmR3uCcGpugwFE1NMg)(void* argTuple, void* kwargsDict, NI argIdx, NCSTRING argName, tySequence__4eQHGndY6XBYpFOH09apV8Q** result) {
	void* arg;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	arg = getPyArg__NkJdiXLR244lRh2jwrl9clw(argTuple, kwargsDict, argIdx, argName);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		if (!!((arg == 0))) goto LA3_;
		pyObjToNim__7qxhZAIvrwFRxsapLd0gHgnimpy(arg, result);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA3_: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, pyObjFillArray__P4R9bY9aJLZA678YHl3b5l4g)(void* o, tyProc__oPIasAghCTvCKmvkMeB1xQ getItem, NimStringDesc** v, NI vLen_0) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = vLen_0;
		i_2 = ((NI) 0);
		{
			while (1) {
				void* T4_;
				void* T5_;
				if (!(i_2 < colontmp_)) goto LA3;
				i = i_2;
				T4_ = (void*)0;
				T4_ = getItem(o, i);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T5_ = (void*)0;
				T5_ = T4_;
				pyObjToNim__b0mmTXdtWy9av9cY5rqshVIAnimpy(T5_, (&v[i]));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, pyObjToNimSeq__PlDrJiwmvqWSU9cx2JvzXQQ)(void* o, tySequence__sM4lkSb7zS6F7OVMvW9cffQ** v) {
	tyTuple__hbPS8r7C9a0SBVkFBnwt1Ww T1_;
	tyProc__YRQqZC12s3573tRGP8MV3g getSize;
	tyProc__oPIasAghCTvCKmvkMeB1xQ getItem;
	NI sz;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	T1_ = getListOrTupleAccessors__jPqUiLT6lERM4HqZerQlNg(o);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	getSize = T1_.Field0;
	getItem = T1_.Field1;
	{
		NIM_BOOL T4_;
		T4_ = (NIM_BOOL)0;
		T4_ = NIM_UNLIKELY((getSize == 0));
		if (!T4_) goto LA5_;
		raiseConversionError__z8PFXg0IwDVDHYuZ87EtFg_2(((NimStringDesc*) &TM__LoH0foxqckmmftA2y2Dp9aw_27));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA5_: ;
	sz = getSize(o);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*v) = newSeq__q7W9bxIQ7BrFLngLO9cYelsA(((NI) (sz)));
	pyObjFillArray__P4R9bY9aJLZA678YHl3b5l4g(o, getItem, (*v)->data, ((*v) ? (*v)->Sup.len : 0));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
static N_INLINE(void, pyObjToNim__2vv2m02rFZR8ENJ2qpiS9cwnimpy)(void* o, tySequence__sM4lkSb7zS6F7OVMvW9cffQ** v) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	pyObjToNimSeq__PlDrJiwmvqWSU9cx2JvzXQQ(o, v);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, parseArg__9b6ttEhK1WRqorza3JVW9cJw)(void* argTuple, void* kwargsDict, NI argIdx, NCSTRING argName, tySequence__sM4lkSb7zS6F7OVMvW9cffQ** result) {
	void* arg;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	arg = getPyArg__NkJdiXLR244lRh2jwrl9clw(argTuple, kwargsDict, argIdx, argName);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		if (!!((arg == 0))) goto LA3_;
		pyObjToNim__2vv2m02rFZR8ENJ2qpiS9cwnimpy(arg, result);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA3_: ;
	}BeforeRet_: ;
}
static N_INLINE(void*, nimValueToPy__zXY4sY8ktz8SKCRtLhP9bkwnimpy)(tyObject_Table__Ji6x6JQ0gVMaFr8AIk18Ug v) {
	void* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (void*)0;
	result = nimTabToPy__7GcP1UPgFz7C9aCvCSgmnMw(v);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void*, nimArrToPy__IpL55Qnwgn3dYjYcPPEFNw)(tyObject_Table__Ji6x6JQ0gVMaFr8AIk18Ug* s, NI sLen_0) {
	void* result;
	NI sz;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (void*)0;
	sz = sLen_0;
	result = (*pyLib__nxKBiAukGMNwnUq9bpn9adyw).PyList_New(sz);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		NI i;
		NI i_2;
		i = (NI)0;
		i_2 = ((NI) 0);
		{
			while (1) {
				void* o;
				int T4_;
				if (!(i_2 < sz)) goto LA3;
				i = i_2;
				o = nimValueToPy__zXY4sY8ktz8SKCRtLhP9bkwnimpy(s[i]);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T4_ = (int)0;
				T4_ = (*pyLib__nxKBiAukGMNwnUq9bpn9adyw).PyList_SetItem(result, i, o);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				(void)(T4_);
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, pyObjToNimTuple__m6VWp5mqQQSnCMJPqIMClw)(void* o, tyTuple__UV3llMMYFckfui8YMBuUZA* v) {
	tyTuple__hbPS8r7C9a0SBVkFBnwt1Ww T1_;
	tyProc__YRQqZC12s3573tRGP8MV3g getSize;
	tyProc__oPIasAghCTvCKmvkMeB1xQ getItem;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	T1_ = getListOrTupleAccessors__jPqUiLT6lERM4HqZerQlNg(o);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	getSize = T1_.Field0;
	getItem = T1_.Field1;
	{
		NIM_BOOL T4_;
		NI T6_;
		NI i;
		void* pf;
		void* pf_2;
		T4_ = (NIM_BOOL)0;
		T4_ = !((getSize == 0));
		if (!(T4_)) goto LA5_;
		T6_ = (NI)0;
		T6_ = getSize(o);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T4_ = (T6_ == ((NI) 2));
		LA5_: ;
		if (!T4_) goto LA7_;
		i = ((NI) 0);
		pf = getItem(o, i);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		pyObjToNim__b0mmTXdtWy9av9cY5rqshVIAnimpy(pf, (&(*v).Field0));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		i += ((NI) 1);
		pf_2 = getItem(o, i);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		pyObjToNim__b0mmTXdtWy9av9cY5rqshVIAnimpy(pf_2, (&(*v).Field1));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		i += ((NI) 1);
	}
	goto LA2_;
	LA7_: ;
	{
		raiseConversionError__z8PFXg0IwDVDHYuZ87EtFg_2(((NimStringDesc*) &TM__LoH0foxqckmmftA2y2Dp9aw_29));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA2_: ;
	}BeforeRet_: ;
}
static N_INLINE(void, pyObjToNim__67nLgPPij2BjJurGAOgqDAnimpy)(void* o, tyTuple__UV3llMMYFckfui8YMBuUZA* v) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	pyObjToNimTuple__m6VWp5mqQQSnCMJPqIMClw(o, v);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, pyObjFillArray__dMzBaXcOvLJs54xFsDl1Ug)(void* o, tyProc__oPIasAghCTvCKmvkMeB1xQ getItem, tyTuple__UV3llMMYFckfui8YMBuUZA* v, NI vLen_0) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = vLen_0;
		i_2 = ((NI) 0);
		{
			while (1) {
				void* T4_;
				void* T5_;
				if (!(i_2 < colontmp_)) goto LA3;
				i = i_2;
				T4_ = (void*)0;
				T4_ = getItem(o, i);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T5_ = (void*)0;
				T5_ = T4_;
				pyObjToNim__67nLgPPij2BjJurGAOgqDAnimpy(T5_, (&v[i]));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, pyObjToNimSeq__lJTfpPnNV3g9aCsQmFMPF1g)(void* o, tySequence__4eQHGndY6XBYpFOH09apV8Q** v) {
	tyTuple__hbPS8r7C9a0SBVkFBnwt1Ww T1_;
	tyProc__YRQqZC12s3573tRGP8MV3g getSize;
	tyProc__oPIasAghCTvCKmvkMeB1xQ getItem;
	NI sz;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	T1_ = getListOrTupleAccessors__jPqUiLT6lERM4HqZerQlNg(o);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	getSize = T1_.Field0;
	getItem = T1_.Field1;
	{
		NIM_BOOL T4_;
		T4_ = (NIM_BOOL)0;
		T4_ = NIM_UNLIKELY((getSize == 0));
		if (!T4_) goto LA5_;
		raiseConversionError__z8PFXg0IwDVDHYuZ87EtFg_2(((NimStringDesc*) &TM__LoH0foxqckmmftA2y2Dp9aw_28));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA5_: ;
	sz = getSize(o);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*v) = newSeq__HC8tGwamevuQ9bMJqp0DH3w(((NI) (sz)));
	pyObjFillArray__dMzBaXcOvLJs54xFsDl1Ug(o, getItem, (*v)->data, ((*v) ? (*v)->Sup.len : 0));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
static N_INLINE(void, pyObjToNim__fmqDTc4QtueK8K9bvGs8RZwnimpy)(void* o, tySequence__4eQHGndY6XBYpFOH09apV8Q** v) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	pyObjToNimSeq__lJTfpPnNV3g9aCsQmFMPF1g(o, v);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, parseArg__eAt2ypX82i5XlekpiJ2Iog)(void* argTuple, void* kwargsDict, NI argIdx, NCSTRING argName, tySequence__4eQHGndY6XBYpFOH09apV8Q** result) {
	void* arg;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	arg = getPyArg__NkJdiXLR244lRh2jwrl9clw(argTuple, kwargsDict, argIdx, argName);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		if (!!((arg == 0))) goto LA3_;
		pyObjToNim__fmqDTc4QtueK8K9bvGs8RZwnimpy(arg, result);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA3_: ;
	}BeforeRet_: ;
}
static N_INLINE(void, pyObjToNim__9bNDYgHmXHXyL1GRMrzOWJgnimpy)(void* o, NI* v) {
	NI64 ll;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	ll = (*pyLib__nxKBiAukGMNwnUq9bpn9adyw).PyLong_AsLongLong(o);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		if (!(ll == IL64(-1))) goto LA3_;
		{
			void* T7_;
			NIM_BOOL T8_;
			T7_ = (void*)0;
			T7_ = (*pyLib__nxKBiAukGMNwnUq9bpn9adyw).PyErr_Occurred();
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T8_ = (NIM_BOOL)0;
			T8_ = NIM_UNLIKELY(!((T7_ == 0)));
			if (!T8_) goto LA9_;
			clearAndRaiseConversionError__z8PFXg0IwDVDHYuZ87EtFg(((NimStringDesc*) &TM__LoH0foxqckmmftA2y2Dp9aw_30));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA9_: ;
	}
	LA3_: ;
	(*v) = ((NI) (ll));
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, parseArg__xmYXac9crrH7kNzmNMPO4Tw)(void* argTuple, void* kwargsDict, NI argIdx, NCSTRING argName, NI* result) {
	void* arg;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	arg = getPyArg__NkJdiXLR244lRh2jwrl9clw(argTuple, kwargsDict, argIdx, argName);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		if (!!((arg == 0))) goto LA3_;
		pyObjToNim__9bNDYgHmXHXyL1GRMrzOWJgnimpy(arg, result);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA3_: ;
	}BeforeRet_: ;
}
static N_INLINE(void, pyObjToNim__UhGkux9bIHP9c4POtEBrXHkgnimpy)(void* o, NI* v) {
	NI64 ll;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	ll = (*pyLib__nxKBiAukGMNwnUq9bpn9adyw).PyLong_AsLongLong(o);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		if (!(ll == IL64(-1))) goto LA3_;
		{
			void* T7_;
			NIM_BOOL T8_;
			T7_ = (void*)0;
			T7_ = (*pyLib__nxKBiAukGMNwnUq9bpn9adyw).PyErr_Occurred();
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T8_ = (NIM_BOOL)0;
			T8_ = NIM_UNLIKELY(!((T7_ == 0)));
			if (!T8_) goto LA9_;
			clearAndRaiseConversionError__z8PFXg0IwDVDHYuZ87EtFg(((NimStringDesc*) &TM__LoH0foxqckmmftA2y2Dp9aw_31));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA9_: ;
	}
	LA3_: ;
	(*v) = ((NI) (ll));
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, parseArg__ho9bOWnt9aMoq6w59bLFncu4A)(void* argTuple, void* kwargsDict, NI argIdx, NCSTRING argName, NI* result) {
	void* arg;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	arg = getPyArg__NkJdiXLR244lRh2jwrl9clw(argTuple, kwargsDict, argIdx, argName);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		if (!!((arg == 0))) goto LA3_;
		pyObjToNim__UhGkux9bIHP9c4POtEBrXHkgnimpy(arg, result);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA3_: ;
	}BeforeRet_: ;
}
static N_INLINE(void*, newPyNone__6Tvzvi9bEckxJJClCQCOiEA_2nimpy)(void) {
	void* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (void*)0;
	incRef__CnqcscfOCAX2jCHv3dRPDwpy_utils((*pyLib__nxKBiAukGMNwnUq9bpn9adyw).Py_None);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	result = (*pyLib__nxKBiAukGMNwnUq9bpn9adyw).Py_None;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_CDECL(void, refCapsuleDestructor__ze39b9aKi9c9cUZEUUgSLeZ5eQ)(void* c) {
	void* o;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	o = (*pyLib__nxKBiAukGMNwnUq9bpn9adyw).PyCapsule_GetPointer(c, NIM_NIL);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	if (((NI*) (o))) { nimGCunref(((NI*) (o))); }
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void*, newPyCapsule__d3pCXTRU5UvUxvkLOKeQug)(tyObject_XmlNodeObj__X79bE2j9a1V7tizbx9blALudQ* v) {
	void* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (void*)0;
	if (v) { nimGCref(v); }
	result = (*pyLib__nxKBiAukGMNwnUq9bpn9adyw).PyCapsule_New(((void*) (v)), NIM_NIL, refCapsuleDestructor__ze39b9aKi9c9cUZEUUgSLeZ5eQ);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(void*, nimValueToPy__ekQJkAPpjfHONEE4siX3TQnimpy)(tyObject_XmlNodeObj__X79bE2j9a1V7tizbx9blALudQ* v) {
	void* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (void*)0;
	{
		if (!(v == 0)) goto LA3_;
		result = newPyNone__6Tvzvi9bEckxJJClCQCOiEA_2nimpy();
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA1_;
	LA3_: ;
	{
		result = newPyCapsule__d3pCXTRU5UvUxvkLOKeQug(v);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void*, nimArrToPy__LqB0BhDTFEuYAXO8ZDzOhQ)(tyObject_XmlNodeObj__X79bE2j9a1V7tizbx9blALudQ** s, NI sLen_0) {
	void* result;
	NI sz;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (void*)0;
	sz = sLen_0;
	result = (*pyLib__nxKBiAukGMNwnUq9bpn9adyw).PyList_New(sz);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		NI i;
		NI i_2;
		i = (NI)0;
		i_2 = ((NI) 0);
		{
			while (1) {
				void* o;
				int T4_;
				if (!(i_2 < sz)) goto LA3;
				i = i_2;
				o = nimValueToPy__ekQJkAPpjfHONEE4siX3TQnimpy(s[i]);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T4_ = (int)0;
				T4_ = (*pyLib__nxKBiAukGMNwnUq9bpn9adyw).PyList_SetItem(result, i, o);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				(void)(T4_);
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
	}BeforeRet_: ;
	return result;
}
static N_INLINE(void*, nimValueToPy__UXBfNV6yxrfH9bcIn6J9aBJAnimpy)(tySequence__AjV3cEUgs0Y9c7dCt9aItdIA* v) {
	void* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (void*)0;
	result = nimArrToPy__LqB0BhDTFEuYAXO8ZDzOhQ(v->data, (v ? v->Sup.len : 0));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void*, nimArrToPy__i3LwlcpEVovieIA8m7QAzQ)(tySequence__AjV3cEUgs0Y9c7dCt9aItdIA** s, NI sLen_0) {
	void* result;
	NI sz;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (void*)0;
	sz = sLen_0;
	result = (*pyLib__nxKBiAukGMNwnUq9bpn9adyw).PyList_New(sz);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		NI i;
		NI i_2;
		i = (NI)0;
		i_2 = ((NI) 0);
		{
			while (1) {
				void* o;
				int T4_;
				if (!(i_2 < sz)) goto LA3;
				i = i_2;
				o = nimValueToPy__UXBfNV6yxrfH9bcIn6J9aBJAnimpy(s[i]);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T4_ = (int)0;
				T4_ = (*pyLib__nxKBiAukGMNwnUq9bpn9adyw).PyList_SetItem(result, i, o);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				(void)(T4_);
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
	}BeforeRet_: ;
	return result;
}
static N_INLINE(void*, nimValueToPy__D3zjW9cYtGQuRuwL28IPiignimpy)(tySequence__sM4lkSb7zS6F7OVMvW9cffQ* v) {
	void* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (void*)0;
	result = nimArrToPy__QDmD9aT9b4YNs9aDHJ7tXGoEA(v->data, (v ? v->Sup.len : 0));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void*, nimArrToPy__w3l4beo0CnJxvDRO05VIyQ)(tySequence__sM4lkSb7zS6F7OVMvW9cffQ** s, NI sLen_0) {
	void* result;
	NI sz;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (void*)0;
	sz = sLen_0;
	result = (*pyLib__nxKBiAukGMNwnUq9bpn9adyw).PyList_New(sz);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		NI i;
		NI i_2;
		i = (NI)0;
		i_2 = ((NI) 0);
		{
			while (1) {
				void* o;
				int T4_;
				if (!(i_2 < sz)) goto LA3;
				i = i_2;
				o = nimValueToPy__D3zjW9cYtGQuRuwL28IPiignimpy(s[i]);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T4_ = (int)0;
				T4_ = (*pyLib__nxKBiAukGMNwnUq9bpn9adyw).PyList_SetItem(result, i, o);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				(void)(T4_);
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
	}BeforeRet_: ;
	return result;
}
static N_INLINE(void, pyObjToNim__wE9c7vjb15yfokWssKf3AbAnimpy)(void* o, NU16* v) {
	NI64 ll;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	ll = (*pyLib__nxKBiAukGMNwnUq9bpn9adyw).PyLong_AsLongLong(o);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		if (!(ll == IL64(-1))) goto LA3_;
		{
			void* T7_;
			NIM_BOOL T8_;
			T7_ = (void*)0;
			T7_ = (*pyLib__nxKBiAukGMNwnUq9bpn9adyw).PyErr_Occurred();
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T8_ = (NIM_BOOL)0;
			T8_ = NIM_UNLIKELY(!((T7_ == 0)));
			if (!T8_) goto LA9_;
			clearAndRaiseConversionError__z8PFXg0IwDVDHYuZ87EtFg(((NimStringDesc*) &TM__LoH0foxqckmmftA2y2Dp9aw_32));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA9_: ;
	}
	LA3_: ;
	(*v) = ((NU16) (ll));
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, parseArg__5c9cbatyqZs1gjMJSvNJREg)(void* argTuple, void* kwargsDict, NI argIdx, NCSTRING argName, NU16* result) {
	void* arg;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	arg = getPyArg__NkJdiXLR244lRh2jwrl9clw(argTuple, kwargsDict, argIdx, argName);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		if (!!((arg == 0))) goto LA3_;
		pyObjToNim__wE9c7vjb15yfokWssKf3AbAnimpy(arg, result);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA3_: ;
	}BeforeRet_: ;
}
static N_INLINE(void, pyObjToNim__emFM2KESQJOmF9cVuZOXhVwnimpy)(void* o, NU8* v) {
	NI64 ll;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	ll = (*pyLib__nxKBiAukGMNwnUq9bpn9adyw).PyLong_AsLongLong(o);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		if (!(ll == IL64(-1))) goto LA3_;
		{
			void* T7_;
			NIM_BOOL T8_;
			T7_ = (void*)0;
			T7_ = (*pyLib__nxKBiAukGMNwnUq9bpn9adyw).PyErr_Occurred();
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T8_ = (NIM_BOOL)0;
			T8_ = NIM_UNLIKELY(!((T7_ == 0)));
			if (!T8_) goto LA9_;
			clearAndRaiseConversionError__z8PFXg0IwDVDHYuZ87EtFg(((NimStringDesc*) &TM__LoH0foxqckmmftA2y2Dp9aw_33));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA9_: ;
	}
	LA3_: ;
	(*v) = ((NU8) (ll));
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, parseArg__0Ekn0vI9aoBX9bHk4z1dMXHg)(void* argTuple, void* kwargsDict, NI argIdx, NCSTRING argName, NU8* result) {
	void* arg;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	arg = getPyArg__NkJdiXLR244lRh2jwrl9clw(argTuple, kwargsDict, argIdx, argName);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		if (!!((arg == 0))) goto LA3_;
		pyObjToNim__emFM2KESQJOmF9cVuZOXhVwnimpy(arg, result);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA3_: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, nimpy_nimpyDatInit000)(void) {

/* section: NIM_merge_TYPE_INIT1 */
static TNimNode* TM__LoH0foxqckmmftA2y2Dp9aw_2_5[5];
static TNimNode* TM__LoH0foxqckmmftA2y2Dp9aw_3_8[8];
static TNimNode* TM__LoH0foxqckmmftA2y2Dp9aw_4_3[3];
static TNimNode TM__LoH0foxqckmmftA2y2Dp9aw_0[19];

/* section: NIM_merge_TYPE_INIT3 */
NTI__gBC8z6Ez5xj3dXoP0ylCRA_.size = sizeof(tyObject_PyModuleDesc__gBC8z6Ez5xj3dXoP0ylCRA);
NTI__gBC8z6Ez5xj3dXoP0ylCRA_.align = NIM_ALIGNOF(tyObject_PyModuleDesc__gBC8z6Ez5xj3dXoP0ylCRA);
NTI__gBC8z6Ez5xj3dXoP0ylCRA_.kind = 18;
NTI__gBC8z6Ez5xj3dXoP0ylCRA_.base = 0;
NTI__gBC8z6Ez5xj3dXoP0ylCRA_.flags = 2;
TM__LoH0foxqckmmftA2y2Dp9aw_2_5[0] = &TM__LoH0foxqckmmftA2y2Dp9aw_0[1];
TM__LoH0foxqckmmftA2y2Dp9aw_0[1].kind = 1;
TM__LoH0foxqckmmftA2y2Dp9aw_0[1].offset = offsetof(tyObject_PyModuleDesc__gBC8z6Ez5xj3dXoP0ylCRA, name);
TM__LoH0foxqckmmftA2y2Dp9aw_0[1].typ = (&NTI__S9agCYBinaYZnGWcjTdxclg_);
TM__LoH0foxqckmmftA2y2Dp9aw_0[1].name = "name";
TM__LoH0foxqckmmftA2y2Dp9aw_2_5[1] = &TM__LoH0foxqckmmftA2y2Dp9aw_0[2];
TM__LoH0foxqckmmftA2y2Dp9aw_0[2].kind = 1;
TM__LoH0foxqckmmftA2y2Dp9aw_0[2].offset = offsetof(tyObject_PyModuleDesc__gBC8z6Ez5xj3dXoP0ylCRA, doc);
TM__LoH0foxqckmmftA2y2Dp9aw_0[2].typ = (&NTI__S9agCYBinaYZnGWcjTdxclg_);
TM__LoH0foxqckmmftA2y2Dp9aw_0[2].name = "doc";
TM__LoH0foxqckmmftA2y2Dp9aw_2_5[2] = &TM__LoH0foxqckmmftA2y2Dp9aw_0[3];
NTI__E2XyP5e7Jr9aMpJMjdz5Tkg_.size = sizeof(tySequence__E2XyP5e7Jr9aMpJMjdz5Tkg*);
NTI__E2XyP5e7Jr9aMpJMjdz5Tkg_.align = NIM_ALIGNOF(tySequence__E2XyP5e7Jr9aMpJMjdz5Tkg*);
NTI__E2XyP5e7Jr9aMpJMjdz5Tkg_.kind = 24;
NTI__E2XyP5e7Jr9aMpJMjdz5Tkg_.base = (&NTI__9aWi1PsmvCuTKIYDHHnhfcw_);
NTI__E2XyP5e7Jr9aMpJMjdz5Tkg_.flags = 2;
NTI__E2XyP5e7Jr9aMpJMjdz5Tkg_.marker = Marker_tySequence__E2XyP5e7Jr9aMpJMjdz5Tkg;
TM__LoH0foxqckmmftA2y2Dp9aw_0[3].kind = 1;
TM__LoH0foxqckmmftA2y2Dp9aw_0[3].offset = offsetof(tyObject_PyModuleDesc__gBC8z6Ez5xj3dXoP0ylCRA, methods);
TM__LoH0foxqckmmftA2y2Dp9aw_0[3].typ = (&NTI__E2XyP5e7Jr9aMpJMjdz5Tkg_);
TM__LoH0foxqckmmftA2y2Dp9aw_0[3].name = "methods";
TM__LoH0foxqckmmftA2y2Dp9aw_2_5[3] = &TM__LoH0foxqckmmftA2y2Dp9aw_0[4];
NTI__BKCcJxogshNojOoN23Qfbg_.size = sizeof(tyObject_PyTypeDesc__BKCcJxogshNojOoN23Qfbg);
NTI__BKCcJxogshNojOoN23Qfbg_.align = NIM_ALIGNOF(tyObject_PyTypeDesc__BKCcJxogshNojOoN23Qfbg);
NTI__BKCcJxogshNojOoN23Qfbg_.kind = 18;
NTI__BKCcJxogshNojOoN23Qfbg_.base = 0;
NTI__BKCcJxogshNojOoN23Qfbg_.flags = 2;
TM__LoH0foxqckmmftA2y2Dp9aw_3_8[0] = &TM__LoH0foxqckmmftA2y2Dp9aw_0[6];
NTI__v2GijgCrTru9brL7cjgOkag_.size = sizeof(tyObject_PyModuleDesc__gBC8z6Ez5xj3dXoP0ylCRA*);
NTI__v2GijgCrTru9brL7cjgOkag_.align = NIM_ALIGNOF(tyObject_PyModuleDesc__gBC8z6Ez5xj3dXoP0ylCRA*);
NTI__v2GijgCrTru9brL7cjgOkag_.kind = 21;
NTI__v2GijgCrTru9brL7cjgOkag_.base = (&NTI__gBC8z6Ez5xj3dXoP0ylCRA_);
NTI__v2GijgCrTru9brL7cjgOkag_.flags = 3;
TM__LoH0foxqckmmftA2y2Dp9aw_0[6].kind = 1;
TM__LoH0foxqckmmftA2y2Dp9aw_0[6].offset = offsetof(tyObject_PyTypeDesc__BKCcJxogshNojOoN23Qfbg, module);
TM__LoH0foxqckmmftA2y2Dp9aw_0[6].typ = (&NTI__v2GijgCrTru9brL7cjgOkag_);
TM__LoH0foxqckmmftA2y2Dp9aw_0[6].name = "module";
TM__LoH0foxqckmmftA2y2Dp9aw_3_8[1] = &TM__LoH0foxqckmmftA2y2Dp9aw_0[7];
TM__LoH0foxqckmmftA2y2Dp9aw_0[7].kind = 1;
TM__LoH0foxqckmmftA2y2Dp9aw_0[7].offset = offsetof(tyObject_PyTypeDesc__BKCcJxogshNojOoN23Qfbg, name);
TM__LoH0foxqckmmftA2y2Dp9aw_0[7].typ = (&NTI__S9agCYBinaYZnGWcjTdxclg_);
TM__LoH0foxqckmmftA2y2Dp9aw_0[7].name = "name";
TM__LoH0foxqckmmftA2y2Dp9aw_3_8[2] = &TM__LoH0foxqckmmftA2y2Dp9aw_0[8];
TM__LoH0foxqckmmftA2y2Dp9aw_0[8].kind = 1;
TM__LoH0foxqckmmftA2y2Dp9aw_0[8].offset = offsetof(tyObject_PyTypeDesc__BKCcJxogshNojOoN23Qfbg, doc);
TM__LoH0foxqckmmftA2y2Dp9aw_0[8].typ = (&NTI__S9agCYBinaYZnGWcjTdxclg_);
TM__LoH0foxqckmmftA2y2Dp9aw_0[8].name = "doc";
TM__LoH0foxqckmmftA2y2Dp9aw_3_8[3] = &TM__LoH0foxqckmmftA2y2Dp9aw_0[9];
TM__LoH0foxqckmmftA2y2Dp9aw_0[9].kind = 1;
TM__LoH0foxqckmmftA2y2Dp9aw_0[9].offset = offsetof(tyObject_PyTypeDesc__BKCcJxogshNojOoN23Qfbg, fullName);
TM__LoH0foxqckmmftA2y2Dp9aw_0[9].typ = (&NTI__77mFvmsOLKik79ci2hXkHEg_);
TM__LoH0foxqckmmftA2y2Dp9aw_0[9].name = "fullName";
TM__LoH0foxqckmmftA2y2Dp9aw_3_8[4] = &TM__LoH0foxqckmmftA2y2Dp9aw_0[10];
TM__LoH0foxqckmmftA2y2Dp9aw_0[10].kind = 1;
TM__LoH0foxqckmmftA2y2Dp9aw_0[10].offset = offsetof(tyObject_PyTypeDesc__BKCcJxogshNojOoN23Qfbg, newFunc);
TM__LoH0foxqckmmftA2y2Dp9aw_0[10].typ = (&NTI__eYT4U6bGFqFBUxk9b15mfOA_);
TM__LoH0foxqckmmftA2y2Dp9aw_0[10].name = "newFunc";
TM__LoH0foxqckmmftA2y2Dp9aw_3_8[5] = &TM__LoH0foxqckmmftA2y2Dp9aw_0[11];
TM__LoH0foxqckmmftA2y2Dp9aw_0[11].kind = 1;
TM__LoH0foxqckmmftA2y2Dp9aw_0[11].offset = offsetof(tyObject_PyTypeDesc__BKCcJxogshNojOoN23Qfbg, methods);
TM__LoH0foxqckmmftA2y2Dp9aw_0[11].typ = (&NTI__E2XyP5e7Jr9aMpJMjdz5Tkg_);
TM__LoH0foxqckmmftA2y2Dp9aw_0[11].name = "methods";
TM__LoH0foxqckmmftA2y2Dp9aw_3_8[6] = &TM__LoH0foxqckmmftA2y2Dp9aw_0[12];
NTI__mAI4KvRAgoko9bmrV4QRgaQ_.size = sizeof(tySequence__mAI4KvRAgoko9bmrV4QRgaQ*);
NTI__mAI4KvRAgoko9bmrV4QRgaQ_.align = NIM_ALIGNOF(tySequence__mAI4KvRAgoko9bmrV4QRgaQ*);
NTI__mAI4KvRAgoko9bmrV4QRgaQ_.kind = 24;
NTI__mAI4KvRAgoko9bmrV4QRgaQ_.base = (&NTI__WC29aEeHi2Pdy9c4AkllcBTg_);
NTI__mAI4KvRAgoko9bmrV4QRgaQ_.flags = 2;
NTI__mAI4KvRAgoko9bmrV4QRgaQ_.marker = Marker_tySequence__mAI4KvRAgoko9bmrV4QRgaQ;
TM__LoH0foxqckmmftA2y2Dp9aw_0[12].kind = 1;
TM__LoH0foxqckmmftA2y2Dp9aw_0[12].offset = offsetof(tyObject_PyTypeDesc__BKCcJxogshNojOoN23Qfbg, members);
TM__LoH0foxqckmmftA2y2Dp9aw_0[12].typ = (&NTI__mAI4KvRAgoko9bmrV4QRgaQ_);
TM__LoH0foxqckmmftA2y2Dp9aw_0[12].name = "members";
TM__LoH0foxqckmmftA2y2Dp9aw_3_8[7] = &TM__LoH0foxqckmmftA2y2Dp9aw_0[13];
TM__LoH0foxqckmmftA2y2Dp9aw_0[13].kind = 1;
TM__LoH0foxqckmmftA2y2Dp9aw_0[13].offset = offsetof(tyObject_PyTypeDesc__BKCcJxogshNojOoN23Qfbg, origSize);
TM__LoH0foxqckmmftA2y2Dp9aw_0[13].typ = (&NTI__rR5Bzr1D5krxoo1NcNyeMA_);
TM__LoH0foxqckmmftA2y2Dp9aw_0[13].name = "origSize";
TM__LoH0foxqckmmftA2y2Dp9aw_0[5].len = 8; TM__LoH0foxqckmmftA2y2Dp9aw_0[5].kind = 2; TM__LoH0foxqckmmftA2y2Dp9aw_0[5].sons = &TM__LoH0foxqckmmftA2y2Dp9aw_3_8[0];
NTI__BKCcJxogshNojOoN23Qfbg_.node = &TM__LoH0foxqckmmftA2y2Dp9aw_0[5];
NTI__1Ib9a4sxiw4YCYbDTADLEsg_.size = sizeof(tySequence__1Ib9a4sxiw4YCYbDTADLEsg*);
NTI__1Ib9a4sxiw4YCYbDTADLEsg_.align = NIM_ALIGNOF(tySequence__1Ib9a4sxiw4YCYbDTADLEsg*);
NTI__1Ib9a4sxiw4YCYbDTADLEsg_.kind = 24;
NTI__1Ib9a4sxiw4YCYbDTADLEsg_.base = (&NTI__BKCcJxogshNojOoN23Qfbg_);
NTI__1Ib9a4sxiw4YCYbDTADLEsg_.flags = 2;
NTI__1Ib9a4sxiw4YCYbDTADLEsg_.marker = Marker_tySequence__1Ib9a4sxiw4YCYbDTADLEsg;
TM__LoH0foxqckmmftA2y2Dp9aw_0[4].kind = 1;
TM__LoH0foxqckmmftA2y2Dp9aw_0[4].offset = offsetof(tyObject_PyModuleDesc__gBC8z6Ez5xj3dXoP0ylCRA, types);
TM__LoH0foxqckmmftA2y2Dp9aw_0[4].typ = (&NTI__1Ib9a4sxiw4YCYbDTADLEsg_);
TM__LoH0foxqckmmftA2y2Dp9aw_0[4].name = "types";
TM__LoH0foxqckmmftA2y2Dp9aw_2_5[4] = &TM__LoH0foxqckmmftA2y2Dp9aw_0[14];
NTI__3Lh9c29bpC2Iomkl9cQO9cGqEw_.size = sizeof(tyObject_PyIteratorDesc__3Lh9c29bpC2Iomkl9cQO9cGqEw);
NTI__3Lh9c29bpC2Iomkl9cQO9cGqEw_.align = NIM_ALIGNOF(tyObject_PyIteratorDesc__3Lh9c29bpC2Iomkl9cQO9cGqEw);
NTI__3Lh9c29bpC2Iomkl9cQO9cGqEw_.kind = 18;
NTI__3Lh9c29bpC2Iomkl9cQO9cGqEw_.base = 0;
NTI__3Lh9c29bpC2Iomkl9cQO9cGqEw_.flags = 3;
TM__LoH0foxqckmmftA2y2Dp9aw_4_3[0] = &TM__LoH0foxqckmmftA2y2Dp9aw_0[16];
TM__LoH0foxqckmmftA2y2Dp9aw_0[16].kind = 1;
TM__LoH0foxqckmmftA2y2Dp9aw_0[16].offset = offsetof(tyObject_PyIteratorDesc__3Lh9c29bpC2Iomkl9cQO9cGqEw, name);
TM__LoH0foxqckmmftA2y2Dp9aw_0[16].typ = (&NTI__S9agCYBinaYZnGWcjTdxclg_);
TM__LoH0foxqckmmftA2y2Dp9aw_0[16].name = "name";
TM__LoH0foxqckmmftA2y2Dp9aw_4_3[1] = &TM__LoH0foxqckmmftA2y2Dp9aw_0[17];
TM__LoH0foxqckmmftA2y2Dp9aw_0[17].kind = 1;
TM__LoH0foxqckmmftA2y2Dp9aw_0[17].offset = offsetof(tyObject_PyIteratorDesc__3Lh9c29bpC2Iomkl9cQO9cGqEw, doc);
TM__LoH0foxqckmmftA2y2Dp9aw_0[17].typ = (&NTI__S9agCYBinaYZnGWcjTdxclg_);
TM__LoH0foxqckmmftA2y2Dp9aw_0[17].name = "doc";
TM__LoH0foxqckmmftA2y2Dp9aw_4_3[2] = &TM__LoH0foxqckmmftA2y2Dp9aw_0[18];
TM__LoH0foxqckmmftA2y2Dp9aw_0[18].kind = 1;
TM__LoH0foxqckmmftA2y2Dp9aw_0[18].offset = offsetof(tyObject_PyIteratorDesc__3Lh9c29bpC2Iomkl9cQO9cGqEw, newFunc);
TM__LoH0foxqckmmftA2y2Dp9aw_0[18].typ = (&NTI__eYT4U6bGFqFBUxk9b15mfOA_);
TM__LoH0foxqckmmftA2y2Dp9aw_0[18].name = "newFunc";
TM__LoH0foxqckmmftA2y2Dp9aw_0[15].len = 3; TM__LoH0foxqckmmftA2y2Dp9aw_0[15].kind = 2; TM__LoH0foxqckmmftA2y2Dp9aw_0[15].sons = &TM__LoH0foxqckmmftA2y2Dp9aw_4_3[0];
NTI__3Lh9c29bpC2Iomkl9cQO9cGqEw_.node = &TM__LoH0foxqckmmftA2y2Dp9aw_0[15];
NTI__xxWWYOndkW9adiM61bZkvsg_.size = sizeof(tySequence__xxWWYOndkW9adiM61bZkvsg*);
NTI__xxWWYOndkW9adiM61bZkvsg_.align = NIM_ALIGNOF(tySequence__xxWWYOndkW9adiM61bZkvsg*);
NTI__xxWWYOndkW9adiM61bZkvsg_.kind = 24;
NTI__xxWWYOndkW9adiM61bZkvsg_.base = (&NTI__3Lh9c29bpC2Iomkl9cQO9cGqEw_);
NTI__xxWWYOndkW9adiM61bZkvsg_.flags = 2;
NTI__xxWWYOndkW9adiM61bZkvsg_.marker = Marker_tySequence__xxWWYOndkW9adiM61bZkvsg;
TM__LoH0foxqckmmftA2y2Dp9aw_0[14].kind = 1;
TM__LoH0foxqckmmftA2y2Dp9aw_0[14].offset = offsetof(tyObject_PyModuleDesc__gBC8z6Ez5xj3dXoP0ylCRA, iterators);
TM__LoH0foxqckmmftA2y2Dp9aw_0[14].typ = (&NTI__xxWWYOndkW9adiM61bZkvsg_);
TM__LoH0foxqckmmftA2y2Dp9aw_0[14].name = "iterators";
TM__LoH0foxqckmmftA2y2Dp9aw_0[0].len = 5; TM__LoH0foxqckmmftA2y2Dp9aw_0[0].kind = 2; TM__LoH0foxqckmmftA2y2Dp9aw_0[0].sons = &TM__LoH0foxqckmmftA2y2Dp9aw_2_5[0];
NTI__gBC8z6Ez5xj3dXoP0ylCRA_.node = &TM__LoH0foxqckmmftA2y2Dp9aw_0[0];
}

