/* Generated by Nim Compiler v1.6.14 */
#define NIM_INTBITS 32

#include "nimbase.h"
#include <string.h>
#undef LANGUAGE_C
#undef MIPSEB
#undef MIPSEL
#undef PPC
#undef R3000
#undef R4000
#undef i386
#undef linux
#undef mips
#undef near
#undef far
#undef powerpc
#undef unix
#define nimfr_(x, y)
#define nimln_(x, y)
typedef struct tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw;
typedef struct tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw;
typedef struct tyObject_IdentCachecolonObjectType___ssh0vzVb9aCQuB6ShpimfIQ tyObject_IdentCachecolonObjectType___ssh0vzVb9aCQuB6ShpimfIQ;
typedef struct tyObject_TSym__3r34mwqcVmg5JFNmiaVncw tyObject_TSym__3r34mwqcVmg5JFNmiaVncw;
typedef struct tyTuple__lk9aOckwIrtItZADQ7QCtXg tyTuple__lk9aOckwIrtItZADQ7QCtXg;
typedef struct NimStringDesc NimStringDesc;
typedef struct TGenericSeq TGenericSeq;
typedef N_NIMCALL_PTR(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, tyProc__uojbiMfaKLMuGW9bbomtTBg) (tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
struct TGenericSeq {
NI len;
NI reserved;
};
struct NimStringDesc {
  TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
struct tyTuple__lk9aOckwIrtItZADQ7QCtXg {
NimStringDesc* Field0;
NimStringDesc* Field1;
NimStringDesc* Field2;
tyProc__uojbiMfaKLMuGW9bbomtTBg Field3;
};
typedef tyTuple__lk9aOckwIrtItZADQ7QCtXg tyArray__nBn9cIlQKpfE3gNWBQDPCbw[2];
static N_INLINE(void, nimZeroMem)(void* p, NI size);
static N_INLINE(void, nimSetMem__systemZmemory_7)(void* a, int v, NI size);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, iterToProcImpl__pluginsZitersgen_7)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, semLocals__pluginsZlocals_7)(tyObject_TContext__TE0bwjD2I16QW6s9c4AgPvw* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, copyString)(NimStringDesc* src);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, pluginMatches__pluginsupport_18)(tyObject_IdentCachecolonObjectType___ssh0vzVb9aCQuB6ShpimfIQ* ic, tyTuple__lk9aOckwIrtItZADQ7QCtXg p, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s);
STRING_LITERAL(TM__HRYz2qtwWw9bfj4ZuGqghLw_2, "stdlib", 6);
STRING_LITERAL(TM__HRYz2qtwWw9bfj4ZuGqghLw_3, "system", 6);
STRING_LITERAL(TM__HRYz2qtwWw9bfj4ZuGqghLw_4, "iterToProc", 10);
STRING_LITERAL(TM__HRYz2qtwWw9bfj4ZuGqghLw_5, "locals", 6);
N_LIB_PRIVATE NIM_CONST tyArray__nBn9cIlQKpfE3gNWBQDPCbw plugins__pluginsZactive_6 = {{((NimStringDesc*) &TM__HRYz2qtwWw9bfj4ZuGqghLw_2),
((NimStringDesc*) &TM__HRYz2qtwWw9bfj4ZuGqghLw_3),
((NimStringDesc*) &TM__HRYz2qtwWw9bfj4ZuGqghLw_4),
iterToProcImpl__pluginsZitersgen_7}
,
{((NimStringDesc*) &TM__HRYz2qtwWw9bfj4ZuGqghLw_2),
((NimStringDesc*) &TM__HRYz2qtwWw9bfj4ZuGqghLw_3),
((NimStringDesc*) &TM__HRYz2qtwWw9bfj4ZuGqghLw_5),
semLocals__pluginsZlocals_7}
}
;
static N_INLINE(void, nimSetMem__systemZmemory_7)(void* a, int v, NI size) {
	void* T1_;
	T1_ = (void*)0;
	T1_ = memset(a, v, ((size_t) (size)));
}
static N_INLINE(void, nimZeroMem)(void* p, NI size) {
	nimSetMem__systemZmemory_7(p, ((int) 0), size);
}
N_LIB_PRIVATE N_NIMCALL(tyProc__uojbiMfaKLMuGW9bbomtTBg, getPlugin__pluginsZactive_25)(tyObject_IdentCachecolonObjectType___ssh0vzVb9aCQuB6ShpimfIQ* ic, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* fn) {
	tyProc__uojbiMfaKLMuGW9bbomtTBg result;
{	result = (tyProc__uojbiMfaKLMuGW9bbomtTBg)0;
	{
		tyTuple__lk9aOckwIrtItZADQ7QCtXg p;
		NI i;
		nimZeroMem((void*)(&p), sizeof(tyTuple__lk9aOckwIrtItZADQ7QCtXg));
		i = ((NI) 0);
		{
			while (1) {
				p.Field0 = copyString(plugins__pluginsZactive_6[(i)- 0].Field0);
				p.Field1 = copyString(plugins__pluginsZactive_6[(i)- 0].Field1);
				p.Field2 = copyString(plugins__pluginsZactive_6[(i)- 0].Field2);
				p.Field3 = plugins__pluginsZactive_6[(i)- 0].Field3;
				{
					NIM_BOOL T6_;
					T6_ = (NIM_BOOL)0;
					T6_ = pluginMatches__pluginsupport_18(ic, p, fn);
					if (!T6_) goto LA7_;
					result = p.Field3;
					goto BeforeRet_;
				}
				LA7_: ;
				{
					if (!(((NI) 1) <= ((NI) (i)))) goto LA11_;
					goto LA2;
				}
				LA11_: ;
				i += ((NI) 1);
			}
		} LA2: ;
	}
	result = NIM_NIL;
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
