/* Generated by Nim Compiler v0.16.0 */
/*   (c) 2017 Andreas Rumpf */
/* The generated code is subject to the original license. */
#define NIM_INTBITS 32

#include "nimbase.h"
#undef linux
typedef struct NimStringDesc NimStringDesc;
typedef struct TGenericSeq TGenericSeq;
struct  TGenericSeq  {
NI len;
NI reserved;
};
struct  NimStringDesc  {
  TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
N_NIMCALL(NimStringDesc*, copyString)(NimStringDesc* src0);
N_NIMCALL(NimStringDesc*, setLengthStr)(NimStringDesc* s0, NI newlen0);
STRING_LITERAL(T_e1RUVS0Bw7xmj9cnDPXLJMQ_2, "", 0);

N_NIMCALL(NimStringDesc*, nuctoUTF8)(NI32 c0) {
	NimStringDesc* result0;
	NI32 i_thWKp7ISAt9bqitwYuDc9cPA;
	result0 = (NimStringDesc*)0;
	result0 = copyString(((NimStringDesc*) &T_e1RUVS0Bw7xmj9cnDPXLJMQ_2));
	i_thWKp7ISAt9bqitwYuDc9cPA = c0;
	{
		if (!((NU32)(i_thWKp7ISAt9bqitwYuDc9cPA) <= (NU32)(((NI32) 127)))) goto LA3;
		result0 = setLengthStr(result0, ((NI) 1));
		result0->data[((NI) 0)] = ((NIM_CHAR) (((NI) (i_thWKp7ISAt9bqitwYuDc9cPA))));
	}
	goto LA1;
	LA3: ;
	{
		if (!((NU32)(i_thWKp7ISAt9bqitwYuDc9cPA) <= (NU32)(((NI32) 2047)))) goto LA6;
		result0 = setLengthStr(result0, ((NI) 2));
		result0->data[((NI) 0)] = ((NIM_CHAR) (((NI) ((NI32)((NI32)((NU32)(i_thWKp7ISAt9bqitwYuDc9cPA) >> (NU32)(((NI) 6))) | ((NI32) 192))))));
		result0->data[((NI) 1)] = ((NIM_CHAR) (((NI) ((NI)(((NI) ((NI32)(i_thWKp7ISAt9bqitwYuDc9cPA & ((NI32) 63)))) | ((NI) 128))))));
	}
	goto LA1;
	LA6: ;
	{
		if (!((NU32)(i_thWKp7ISAt9bqitwYuDc9cPA) <= (NU32)(((NI32) 65535)))) goto LA9;
		result0 = setLengthStr(result0, ((NI) 3));
		result0->data[((NI) 0)] = ((NIM_CHAR) (((NI) ((NI32)((NI32)((NU32)(i_thWKp7ISAt9bqitwYuDc9cPA) >> (NU32)(((NI) 12))) | ((NI32) 224))))));
		result0->data[((NI) 1)] = ((NIM_CHAR) (((NI) ((NI)(((NI) ((NI32)((NI32)((NU32)(i_thWKp7ISAt9bqitwYuDc9cPA) >> (NU32)(((NI) 6))) & ((NI32) 63)))) | ((NI) 128))))));
		result0->data[((NI) 2)] = ((NIM_CHAR) (((NI) ((NI)(((NI) ((NI32)(i_thWKp7ISAt9bqitwYuDc9cPA & ((NI32) 63)))) | ((NI) 128))))));
	}
	goto LA1;
	LA9: ;
	{
		if (!((NU32)(i_thWKp7ISAt9bqitwYuDc9cPA) <= (NU32)(((NI32) 2097151)))) goto LA12;
		result0 = setLengthStr(result0, ((NI) 4));
		result0->data[((NI) 0)] = ((NIM_CHAR) (((NI) ((NI32)((NI32)((NU32)(i_thWKp7ISAt9bqitwYuDc9cPA) >> (NU32)(((NI) 18))) | ((NI32) 240))))));
		result0->data[((NI) 1)] = ((NIM_CHAR) (((NI) ((NI)(((NI) ((NI32)((NI32)((NU32)(i_thWKp7ISAt9bqitwYuDc9cPA) >> (NU32)(((NI) 12))) & ((NI32) 63)))) | ((NI) 128))))));
		result0->data[((NI) 2)] = ((NIM_CHAR) (((NI) ((NI)(((NI) ((NI32)((NI32)((NU32)(i_thWKp7ISAt9bqitwYuDc9cPA) >> (NU32)(((NI) 6))) & ((NI32) 63)))) | ((NI) 128))))));
		result0->data[((NI) 3)] = ((NIM_CHAR) (((NI) ((NI)(((NI) ((NI32)(i_thWKp7ISAt9bqitwYuDc9cPA & ((NI32) 63)))) | ((NI) 128))))));
	}
	goto LA1;
	LA12: ;
	{
		if (!((NU32)(i_thWKp7ISAt9bqitwYuDc9cPA) <= (NU32)(((NI32) 67108863)))) goto LA15;
		result0 = setLengthStr(result0, ((NI) 5));
		result0->data[((NI) 0)] = ((NIM_CHAR) (((NI) ((NI32)((NI32)((NU32)(i_thWKp7ISAt9bqitwYuDc9cPA) >> (NU32)(((NI) 24))) | ((NI32) 248))))));
		result0->data[((NI) 1)] = ((NIM_CHAR) (((NI) ((NI)(((NI) ((NI32)((NI32)((NU32)(i_thWKp7ISAt9bqitwYuDc9cPA) >> (NU32)(((NI) 18))) & ((NI32) 63)))) | ((NI) 128))))));
		result0->data[((NI) 2)] = ((NIM_CHAR) (((NI) ((NI)(((NI) ((NI32)((NI32)((NU32)(i_thWKp7ISAt9bqitwYuDc9cPA) >> (NU32)(((NI) 12))) & ((NI32) 63)))) | ((NI) 128))))));
		result0->data[((NI) 3)] = ((NIM_CHAR) (((NI) ((NI)(((NI) ((NI32)((NI32)((NU32)(i_thWKp7ISAt9bqitwYuDc9cPA) >> (NU32)(((NI) 6))) & ((NI32) 63)))) | ((NI) 128))))));
		result0->data[((NI) 4)] = ((NIM_CHAR) (((NI) ((NI)(((NI) ((NI32)(i_thWKp7ISAt9bqitwYuDc9cPA & ((NI32) 63)))) | ((NI) 128))))));
	}
	goto LA1;
	LA15: ;
	{
		if (!((NU32)(i_thWKp7ISAt9bqitwYuDc9cPA) <= (NU32)(((NI32) 2147483647)))) goto LA18;
		result0 = setLengthStr(result0, ((NI) 6));
		result0->data[((NI) 0)] = ((NIM_CHAR) (((NI) ((NI32)((NI32)((NU32)(i_thWKp7ISAt9bqitwYuDc9cPA) >> (NU32)(((NI) 30))) | ((NI32) 252))))));
		result0->data[((NI) 1)] = ((NIM_CHAR) (((NI) ((NI)(((NI) ((NI32)((NI32)((NU32)(i_thWKp7ISAt9bqitwYuDc9cPA) >> (NU32)(((NI) 24))) & ((NI32) 63)))) | ((NI) 128))))));
		result0->data[((NI) 2)] = ((NIM_CHAR) (((NI) ((NI)(((NI) ((NI32)((NI32)((NU32)(i_thWKp7ISAt9bqitwYuDc9cPA) >> (NU32)(((NI) 18))) & ((NI32) 63)))) | ((NI) 128))))));
		result0->data[((NI) 3)] = ((NIM_CHAR) (((NI) ((NI)(((NI) ((NI32)((NI32)((NU32)(i_thWKp7ISAt9bqitwYuDc9cPA) >> (NU32)(((NI) 12))) & ((NI32) 63)))) | ((NI) 128))))));
		result0->data[((NI) 4)] = ((NIM_CHAR) (((NI) ((NI)(((NI) ((NI32)((NI32)((NU32)(i_thWKp7ISAt9bqitwYuDc9cPA) >> (NU32)(((NI) 6))) & ((NI32) 63)))) | ((NI) 128))))));
		result0->data[((NI) 5)] = ((NIM_CHAR) (((NI) ((NI)(((NI) ((NI32)(i_thWKp7ISAt9bqitwYuDc9cPA & ((NI32) 63)))) | ((NI) 128))))));
	}
	goto LA1;
	LA18: ;
	{
	}
	LA1: ;
	return result0;
}
NIM_EXTERNC N_NOINLINE(void, stdlib_unicodeInit000)(void) {
}

NIM_EXTERNC N_NOINLINE(void, stdlib_unicodeDatInit000)(void) {
}

