/*===========================================================================*/
/*   (Unsafe/kmp.scm)                                                        */
/*   Bigloo (4.7a)                                                           */
/*   Inria -- Sophia Antipolis (c)       Thu Feb 19 09:11:58 AM CET 2026     */
/*===========================================================================*/
/* COMPILATION: (/home/serrano/prgm/project/bigloo/4.7a/bin/bigloo -srfi bigloo-unsafe -O3 -fcfa-arithmetic -q -lib-dir /home/serrano/prgm/project/bigloo/4.7a/lib/bigloo/4.7a +rm -mklib -cc gcc -fsharing -q -no-hello -unsafe -safee -O4 -stdc -c Unsafe/kmp.scm -indent -o objs/obj_u/Unsafe/kmp.c) */
/* GC selection */
#define THE_GC BOEHM_GC

/* unsafe mode */
#define BIGLOO_UNSAFE 1

/* traces mode */
#define BIGLOO_TRACE 0

/* standard Bigloo include */
#include <bigloo.h>

#ifdef __cplusplus
extern "C"
{
#endif
#ifndef BGL_MODULE_TYPE_DEFINITIONS
#define BGL_MODULE_TYPE_DEFINITIONS
#ifndef BGL___KMP_TYPE_DEFINITIONS
#define BGL___KMP_TYPE_DEFINITIONS
#endif													// BGL___KMP_TYPE_DEFINITIONS
#endif													// BGL_MODULE_TYPE_DEFINITIONS

	static obj_t BGl_z62kmpzd2mmapzb0zz__kmpz00(obj_t, obj_t, obj_t, obj_t);
	static obj_t BGl_requirezd2initializa7ationz75zz__kmpz00 = BUNSPEC;
	extern obj_t BGl_typezd2errorzd2zz__errorz00(obj_t, obj_t, obj_t, obj_t,
		obj_t);
	BGL_EXPORTED_DECL obj_t BGl_modulezd2initializa7ationz75zz__kmpz00(long,
		char *);
	extern obj_t BGl_modulezd2initializa7ationz75zz__paramz00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zz__errorz00(long, char *);
	static obj_t BGl_z62kmpzd2tablezb0zz__kmpz00(obj_t, obj_t);
	static obj_t BGl_cnstzd2initzd2zz__kmpz00(void);
	static obj_t BGl_genericzd2initzd2zz__kmpz00(void);
	static obj_t BGl_importedzd2moduleszd2initz00zz__kmpz00(void);
	static obj_t BGl_gczd2rootszd2initz00zz__kmpz00(void);
	static obj_t BGl_objectzd2initzd2zz__kmpz00(void);
	BGL_EXPORTED_DECL obj_t BGl_kmpzd2tablezd2zz__kmpz00(obj_t);
	BGL_EXPORTED_DECL long BGl_kmpzd2stringzd2zz__kmpz00(obj_t, obj_t, long);
	extern obj_t bstring_to_symbol(obj_t);
	BGL_EXPORTED_DECL long BGl_kmpzd2mmapzd2zz__kmpz00(obj_t, obj_t, long);
	extern obj_t make_vector(long, obj_t);
	static obj_t BGl_z62kmpzd2stringzb0zz__kmpz00(obj_t, obj_t, obj_t, obj_t);
	static obj_t BGl_methodzd2initzd2zz__kmpz00(void);
	extern obj_t BGl_bigloozd2typezd2errorz00zz__errorz00(obj_t, obj_t, obj_t);
	static obj_t BGl_symbol1736z00zz__kmpz00 = BUNSPEC;
	static obj_t BGl_symbol1738z00zz__kmpz00 = BUNSPEC;
	extern obj_t BGl_errorz00zz__errorz00(obj_t, obj_t, obj_t);
	static obj_t *__cnst;


	   
		 
		DEFINE_EXPORT_BGL_PROCEDURE(BGl_kmpzd2stringzd2envz00zz__kmpz00,
		BgL_bgl_za762kmpza7d2stringza71748za7, BGl_z62kmpzd2stringzb0zz__kmpz00, 0L,
		BUNSPEC, 3);
	      DEFINE_EXPORT_BGL_PROCEDURE(BGl_kmpzd2mmapzd2envz00zz__kmpz00,
		BgL_bgl_za762kmpza7d2mmapza7b01749za7, BGl_z62kmpzd2mmapzb0zz__kmpz00, 0L,
		BUNSPEC, 3);
	      BGL_DEFINE_STRING(BGl_string1731z00zz__kmpz00,
		BgL_bgl_string1731za700za7za7_1750za7, "/tmp/bigloo/runtime/Unsafe/kmp.scm",
		34);
	      BGL_DEFINE_STRING(BGl_string1732z00zz__kmpz00,
		BgL_bgl_string1732za700za7za7_1751za7, "&kmp-table", 10);
	      BGL_DEFINE_STRING(BGl_string1733z00zz__kmpz00,
		BgL_bgl_string1733za700za7za7_1752za7, "bstring", 7);
	      BGL_DEFINE_STRING(BGl_string1734z00zz__kmpz00,
		BgL_bgl_string1734za700za7za7_1753za7, "kmp-mmap", 8);
	      BGL_DEFINE_STRING(BGl_string1735z00zz__kmpz00,
		BgL_bgl_string1735za700za7za7_1754za7, "Illegal kmp-table", 17);
	      BGL_DEFINE_STRING(BGl_string1737z00zz__kmpz00,
		BgL_bgl_string1737za700za7za7_1755za7, "string", 6);
	      BGL_DEFINE_STRING(BGl_string1739z00zz__kmpz00,
		BgL_bgl_string1739za700za7za7_1756za7, "vector", 6);
	      DEFINE_EXPORT_BGL_PROCEDURE(BGl_kmpzd2tablezd2envz00zz__kmpz00,
		BgL_bgl_za762kmpza7d2tableza7b1757za7, BGl_z62kmpzd2tablezb0zz__kmpz00, 0L,
		BUNSPEC, 1);
	      BGL_DEFINE_STRING(BGl_string1740z00zz__kmpz00,
		BgL_bgl_string1740za700za7za7_1758za7, "&kmp-mmap", 9);
	      BGL_DEFINE_STRING(BGl_string1741z00zz__kmpz00,
		BgL_bgl_string1741za700za7za7_1759za7, "pair", 4);
	      BGL_DEFINE_STRING(BGl_string1742z00zz__kmpz00,
		BgL_bgl_string1742za700za7za7_1760za7, "mmap", 4);
	      BGL_DEFINE_STRING(BGl_string1743z00zz__kmpz00,
		BgL_bgl_string1743za700za7za7_1761za7, "belong", 6);
	      BGL_DEFINE_STRING(BGl_string1744z00zz__kmpz00,
		BgL_bgl_string1744za700za7za7_1762za7, "kmp-string", 10);
	      BGL_DEFINE_STRING(BGl_string1745z00zz__kmpz00,
		BgL_bgl_string1745za700za7za7_1763za7, "&kmp-string", 11);
	      BGL_DEFINE_STRING(BGl_string1746z00zz__kmpz00,
		BgL_bgl_string1746za700za7za7_1764za7, "bint", 4);
	      BGL_DEFINE_STRING(BGl_string1747z00zz__kmpz00,
		BgL_bgl_string1747za700za7za7_1765za7, "__kmp", 5);

/* contant bindings */
	static void bgl_constant_bindings()
	{
		BGL_BIND_STRING(BGl_string1747z00zz__kmpz00,
			BgL_bgl_string1747za700za7za7_1765za7);
		BGL_BIND_STRING(BGl_string1746z00zz__kmpz00,
			BgL_bgl_string1746za700za7za7_1764za7);
		BGL_BIND_STRING(BGl_string1745z00zz__kmpz00,
			BgL_bgl_string1745za700za7za7_1763za7);
		BGL_BIND_STRING(BGl_string1744z00zz__kmpz00,
			BgL_bgl_string1744za700za7za7_1762za7);
		BGL_BIND_STRING(BGl_string1743z00zz__kmpz00,
			BgL_bgl_string1743za700za7za7_1761za7);
		BGL_BIND_STRING(BGl_string1742z00zz__kmpz00,
			BgL_bgl_string1742za700za7za7_1760za7);
		BGL_BIND_STRING(BGl_string1741z00zz__kmpz00,
			BgL_bgl_string1741za700za7za7_1759za7);
		BGL_BIND_STRING(BGl_string1740z00zz__kmpz00,
			BgL_bgl_string1740za700za7za7_1758za7);
		BGL_BIND_PROCEDURE(BGl_kmpzd2tablezd2envz00zz__kmpz00,
			BgL_bgl_za762kmpza7d2tableza7b1757za7);
		BGL_BIND_STRING(BGl_string1739z00zz__kmpz00,
			BgL_bgl_string1739za700za7za7_1756za7);
		BGL_BIND_STRING(BGl_string1737z00zz__kmpz00,
			BgL_bgl_string1737za700za7za7_1755za7);
		BGL_BIND_STRING(BGl_string1735z00zz__kmpz00,
			BgL_bgl_string1735za700za7za7_1754za7);
		BGL_BIND_STRING(BGl_string1734z00zz__kmpz00,
			BgL_bgl_string1734za700za7za7_1753za7);
		BGL_BIND_STRING(BGl_string1733z00zz__kmpz00,
			BgL_bgl_string1733za700za7za7_1752za7);
		BGL_BIND_STRING(BGl_string1732z00zz__kmpz00,
			BgL_bgl_string1732za700za7za7_1751za7);
		BGL_BIND_STRING(BGl_string1731z00zz__kmpz00,
			BgL_bgl_string1731za700za7za7_1750za7);
		BGL_BIND_PROCEDURE(BGl_kmpzd2mmapzd2envz00zz__kmpz00,
			BgL_bgl_za762kmpza7d2mmapza7b01749za7);
		BGL_BIND_PROCEDURE(BGl_kmpzd2stringzd2envz00zz__kmpz00,
			BgL_bgl_za762kmpza7d2stringza71748za7);
	}

/* GC roots registration */
	static obj_t bgl_gc_roots_register()
	{
#if defined( BGL_GC_ROOTS )
#define ADD_ROOT( addr ) (addr > roots_max ? roots_max = addr : (addr < roots_min ? roots_min = addr : 0))
		void *roots_min = (void *) ULONG_MAX, *roots_max = 0;

		ADD_ROOT((void *) (&BGl_requirezd2initializa7ationz75zz__kmpz00));
		ADD_ROOT((void *) (&BGl_symbol1736z00zz__kmpz00));
		ADD_ROOT((void *) (&BGl_symbol1738z00zz__kmpz00));
#undef ADD_ROOT
		if (roots_max > 0)
			GC_add_roots(roots_min, ((void **) roots_max) + 1);
#endif
		return BUNSPEC;
	}



/* module-initialization */
	BGL_EXPORTED_DEF obj_t BGl_modulezd2initializa7ationz75zz__kmpz00(long
		BgL_checksumz00_1991, char *BgL_fromz00_1992)
	{
		{
			if (CBOOL(BGl_requirezd2initializa7ationz75zz__kmpz00))
				{
					BGl_requirezd2initializa7ationz75zz__kmpz00 = BBOOL(((bool_t) 0));
					bgl_constant_bindings();
					BGl_gczd2rootszd2initz00zz__kmpz00();
					BGl_cnstzd2initzd2zz__kmpz00();
					BGl_importedzd2moduleszd2initz00zz__kmpz00();
					return BGl_methodzd2initzd2zz__kmpz00();
				}
			else
				{
					return BUNSPEC;
				}
		}

	}



/* cnst-init */
	obj_t BGl_cnstzd2initzd2zz__kmpz00(void)
	{
		{	/* Unsafe/kmp.scm 15 */
			BGl_symbol1736z00zz__kmpz00 =
				bstring_to_symbol(BGl_string1737z00zz__kmpz00);
			return (BGl_symbol1738z00zz__kmpz00 =
				bstring_to_symbol(BGl_string1739z00zz__kmpz00), BUNSPEC);
		}

	}



/* gc-roots-init */
	obj_t BGl_gczd2rootszd2initz00zz__kmpz00(void)
	{
		{	/* Unsafe/kmp.scm 15 */
			return bgl_gc_roots_register();
		}

	}



/* kmp-table */
	BGL_EXPORTED_DEF obj_t BGl_kmpzd2tablezd2zz__kmpz00(obj_t BgL_pz00_3)
	{
		{	/* Unsafe/kmp.scm 52 */
			{	/* Unsafe/kmp.scm 53 */
				long BgL_lpz00_1134;

				BgL_lpz00_1134 = STRING_LENGTH(BgL_pz00_3);
				{	/* Unsafe/kmp.scm 53 */
					obj_t BgL_tz00_1135;

					BgL_tz00_1135 = make_vector((BgL_lpz00_1134 + 2L), BINT(0L));
					{	/* Unsafe/kmp.scm 54 */
						long BgL_iz00_1136;

						BgL_iz00_1136 = 0L;
						{	/* Unsafe/kmp.scm 55 */
							obj_t BgL_jz00_1137;

							BgL_jz00_1137 = BINT((-1L));
							{	/* Unsafe/kmp.scm 56 */
								unsigned char BgL_cz00_1138;

								BgL_cz00_1138 = ((unsigned char) '\000');
								{	/* Unsafe/kmp.scm 57 */

									VECTOR_SET(BgL_tz00_1135, 0L, BgL_jz00_1137);
									{

									BgL_zc3z04anonymousza31168ze3z87_1140:
										if ((BgL_iz00_1136 < BgL_lpz00_1134))
											{	/* Unsafe/kmp.scm 60 */
												{	/* Unsafe/kmp.scm 62 */
													bool_t BgL_test1768z00_2012;

													{	/* Unsafe/kmp.scm 62 */
														unsigned char BgL_char2z00_1681;

														BgL_char2z00_1681 = BgL_cz00_1138;
														BgL_test1768z00_2012 =
															(STRING_REF(BgL_pz00_3,
																BgL_iz00_1136) == BgL_char2z00_1681);
													}
													if (BgL_test1768z00_2012)
														{	/* Unsafe/kmp.scm 62 */
															{	/* Unsafe/kmp.scm 63 */
																long BgL_arg1187z00_1144;
																long BgL_arg1189z00_1145;

																BgL_arg1187z00_1144 = (BgL_iz00_1136 + 1L);
																BgL_arg1189z00_1145 =
																	((long) CINT(BgL_jz00_1137) + 1L);
																VECTOR_SET(BgL_tz00_1135, BgL_arg1187z00_1144,
																	BINT(BgL_arg1189z00_1145));
															}
															BgL_jz00_1137 = ADDFX(BgL_jz00_1137, BINT(1L));
															BgL_iz00_1136 = (BgL_iz00_1136 + 1L);
														}
													else
														{	/* Unsafe/kmp.scm 62 */
															if (((long) CINT(BgL_jz00_1137) > 0L))
																{	/* Unsafe/kmp.scm 66 */
																	BgL_jz00_1137 =
																		VECTOR_REF(BgL_tz00_1135,
																		(long) CINT(BgL_jz00_1137));
																}
															else
																{	/* Unsafe/kmp.scm 66 */
																	VECTOR_SET(BgL_tz00_1135,
																		(BgL_iz00_1136 + 1L), BINT(0L));
																	BgL_iz00_1136 = (BgL_iz00_1136 + 1L);
																	BgL_jz00_1137 = BINT(0L);
																}
														}
												}
												BgL_cz00_1138 =
													STRING_REF(BgL_pz00_3, (long) CINT(BgL_jz00_1137));
												goto BgL_zc3z04anonymousza31168ze3z87_1140;
											}
										else
											{	/* Unsafe/kmp.scm 60 */
												((bool_t) 0);
											}
									}
									return MAKE_YOUNG_PAIR(BgL_tz00_1135, BgL_pz00_3);
								}
							}
						}
					}
				}
			}
		}

	}



/* &kmp-table */
	obj_t BGl_z62kmpzd2tablezb0zz__kmpz00(obj_t BgL_envz00_1966,
		obj_t BgL_pz00_1967)
	{
		{	/* Unsafe/kmp.scm 52 */
			{	/* Unsafe/kmp.scm 53 */
				obj_t BgL_auxz00_2036;

				if (STRINGP(BgL_pz00_1967))
					{	/* Unsafe/kmp.scm 53 */
						BgL_auxz00_2036 = BgL_pz00_1967;
					}
				else
					{
						obj_t BgL_auxz00_2039;

						BgL_auxz00_2039 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string1731z00zz__kmpz00,
							BINT(1837L), BGl_string1732z00zz__kmpz00,
							BGl_string1733z00zz__kmpz00, BgL_pz00_1967);
						FAILURE(BgL_auxz00_2039, BFALSE, BFALSE);
					}
				return BGl_kmpzd2tablezd2zz__kmpz00(BgL_auxz00_2036);
			}
		}

	}



/* kmp-mmap */
	BGL_EXPORTED_DEF long BGl_kmpzd2mmapzd2zz__kmpz00(obj_t BgL_tpz00_4,
		obj_t BgL_mmz00_5, long BgL_mz00_6)
	{
		{	/* Unsafe/kmp.scm 79 */
			{	/* Unsafe/kmp.scm 81 */
				bool_t BgL_test1771z00_2044;

				{	/* Unsafe/kmp.scm 81 */
					obj_t BgL_tmpz00_2045;

					BgL_tmpz00_2045 = CAR(BgL_tpz00_4);
					BgL_test1771z00_2044 = VECTORP(BgL_tmpz00_2045);
				}
				if (BgL_test1771z00_2044)
					{	/* Unsafe/kmp.scm 83 */
						bool_t BgL_test1772z00_2048;

						{	/* Unsafe/kmp.scm 83 */
							obj_t BgL_tmpz00_2049;

							BgL_tmpz00_2049 = CDR(BgL_tpz00_4);
							BgL_test1772z00_2048 = STRINGP(BgL_tmpz00_2049);
						}
						if (BgL_test1772z00_2048)
							{	/* Unsafe/kmp.scm 85 */
								bool_t BgL_test1773z00_2052;

								{	/* Unsafe/kmp.scm 85 */
									long BgL_arg1236z00_1187;
									long BgL_arg1239z00_1188;

									{	/* Unsafe/kmp.scm 85 */
										obj_t BgL_arg1241z00_1189;

										BgL_arg1241z00_1189 = CAR(BgL_tpz00_4);
										BgL_arg1236z00_1187 =
											VECTOR_LENGTH(((obj_t) BgL_arg1241z00_1189));
									}
									BgL_arg1239z00_1188 = (2L + STRING_LENGTH(CDR(BgL_tpz00_4)));
									BgL_test1773z00_2052 =
										(BgL_arg1236z00_1187 == BgL_arg1239z00_1188);
								}
								if (BgL_test1773z00_2052)
									{	/* Unsafe/kmp.scm 88 */
										obj_t BgL_tz00_1161;

										BgL_tz00_1161 = CAR(BgL_tpz00_4);
										{	/* Unsafe/kmp.scm 88 */
											obj_t BgL_pz00_1162;

											BgL_pz00_1162 = CDR(BgL_tpz00_4);
											{	/* Unsafe/kmp.scm 89 */
												long BgL_lsz00_1163;

												BgL_lsz00_1163 = BGL_MMAP_LENGTH(BgL_mmz00_5);
												{	/* Unsafe/kmp.scm 90 */
													long BgL_lpz00_1164;

													{	/* Unsafe/kmp.scm 91 */
														long BgL_arg1235z00_1186;

														BgL_arg1235z00_1186 =
															STRING_LENGTH(((obj_t) BgL_pz00_1162));
														BgL_lpz00_1164 = (long) (BgL_arg1235z00_1186);
													}
													{	/* Unsafe/kmp.scm 91 */

														{
															long BgL_iz00_1166;

															BgL_iz00_1166 = ((long) 0);
														BgL_zc3z04anonymousza31209ze3z87_1167:
															if ((BgL_iz00_1166 == BgL_lpz00_1164))
																{	/* Unsafe/kmp.scm 94 */
																	return BgL_mz00_6;
																}
															else
																{	/* Unsafe/kmp.scm 94 */
																	if (
																		((BgL_iz00_1166 + BgL_mz00_6) >=
																			BgL_lsz00_1163))
																		{	/* Unsafe/kmp.scm 96 */
																			return ((long) -1);
																		}
																	else
																		{	/* Unsafe/kmp.scm 99 */
																			long BgL_fiz00_1171;

																			BgL_fiz00_1171 = (long) (BgL_iz00_1166);
																			{	/* Unsafe/kmp.scm 100 */
																				bool_t BgL_test1776z00_2072;

																				{	/* Unsafe/kmp.scm 100 */
																					unsigned char BgL_arg1230z00_1181;
																					unsigned char BgL_arg1231z00_1182;

																					{	/* Unsafe/kmp.scm 100 */
																						long BgL_arg1232z00_1183;

																						BgL_arg1232z00_1183 =
																							(BgL_iz00_1166 + BgL_mz00_6);
																						{	/* Unsafe/kmp.scm 100 */
																							unsigned char BgL_res1716z00_1728;

																							{	/* Unsafe/kmp.scm 100 */
																								unsigned char BgL_cz00_1722;

																								BgL_cz00_1722 =
																									BGL_MMAP_REF(BgL_mmz00_5,
																									BgL_arg1232z00_1183);
																								{	/* Unsafe/kmp.scm 100 */
																									long BgL_arg1712z00_1723;

																									BgL_arg1712z00_1723 =
																										(BgL_arg1232z00_1183 +
																										((long) 1));
																									BGL_MMAP_RP_SET(BgL_mmz00_5,
																										BgL_arg1712z00_1723);
																									BUNSPEC;
																									BgL_arg1712z00_1723;
																								}
																								BgL_res1716z00_1728 =
																									BgL_cz00_1722;
																							}
																							BgL_arg1230z00_1181 =
																								BgL_res1716z00_1728;
																					}}
																					BgL_arg1231z00_1182 =
																						STRING_REF(
																						((obj_t) BgL_pz00_1162),
																						BgL_fiz00_1171);
																					BgL_test1776z00_2072 =
																						(BgL_arg1230z00_1181 ==
																						BgL_arg1231z00_1182);
																				}
																				if (BgL_test1776z00_2072)
																					{
																						long BgL_iz00_2080;

																						BgL_iz00_2080 =
																							(BgL_iz00_1166 + ((long) 1));
																						BgL_iz00_1166 = BgL_iz00_2080;
																						goto
																							BgL_zc3z04anonymousza31209ze3z87_1167;
																					}
																				else
																					{	/* Unsafe/kmp.scm 102 */
																						long BgL_tiz00_1177;

																						{	/* Unsafe/kmp.scm 102 */
																							obj_t BgL_arg1226z00_1180;

																							BgL_arg1226z00_1180 =
																								VECTOR_REF(
																								((obj_t) BgL_tz00_1161),
																								BgL_fiz00_1171);
																							{	/* Unsafe/kmp.scm 102 */
																								long BgL_tmpz00_2084;

																								BgL_tmpz00_2084 =
																									(long)
																									CINT(BgL_arg1226z00_1180);
																								BgL_tiz00_1177 =
																									(long) (BgL_tmpz00_2084);
																						}}
																						{	/* Unsafe/kmp.scm 103 */
																							long BgL_za71za7_1741;

																							BgL_za71za7_1741 = BgL_mz00_6;
																							{	/* Unsafe/kmp.scm 103 */
																								long BgL_tmpz00_2087;

																								{	/* Unsafe/kmp.scm 103 */
																									long BgL_res1717z00_1740;

																									{	/* Unsafe/kmp.scm 103 */
																										long BgL_tmpz00_2088;

																										BgL_tmpz00_2088 =
																											(BgL_iz00_1166 -
																											BgL_tiz00_1177);
																										BgL_res1717z00_1740 =
																											(long) (BgL_tmpz00_2088);
																									}
																									BgL_tmpz00_2087 =
																										BgL_res1717z00_1740;
																								}
																								BgL_mz00_6 =
																									(BgL_za71za7_1741 +
																									BgL_tmpz00_2087);
																						}}
																						if ((BgL_iz00_1166 > ((long) 0)))
																							{
																								long BgL_iz00_2094;

																								BgL_iz00_2094 = BgL_tiz00_1177;
																								BgL_iz00_1166 = BgL_iz00_2094;
																								goto
																									BgL_zc3z04anonymousza31209ze3z87_1167;
																							}
																						else
																							{

																								goto
																									BgL_zc3z04anonymousza31209ze3z87_1167;
																							}
																					}
																			}
																		}
																}
														}
													}
												}
											}
										}
									}
								else
									{	/* Unsafe/kmp.scm 86 */
										obj_t BgL_tmpz00_2095;

										BgL_tmpz00_2095 =
											BGl_errorz00zz__errorz00(BGl_string1734z00zz__kmpz00,
											BGl_string1735z00zz__kmpz00, BgL_tpz00_4);
										return BELONG_TO_LONG(BgL_tmpz00_2095);
									}
							}
						else
							{	/* Unsafe/kmp.scm 84 */
								obj_t BgL_arg1249z00_1192;

								BgL_arg1249z00_1192 = CDR(BgL_tpz00_4);
								{	/* Unsafe/kmp.scm 84 */
									obj_t BgL_tmpz00_2099;

									BgL_tmpz00_2099 =
										BGl_bigloozd2typezd2errorz00zz__errorz00
										(BGl_string1734z00zz__kmpz00, BGl_symbol1736z00zz__kmpz00,
										BgL_arg1249z00_1192);
									return BELONG_TO_LONG(BgL_tmpz00_2099);
								}
							}
					}
				else
					{	/* Unsafe/kmp.scm 82 */
						obj_t BgL_arg1253z00_1194;

						BgL_arg1253z00_1194 = CAR(BgL_tpz00_4);
						{	/* Unsafe/kmp.scm 82 */
							obj_t BgL_tmpz00_2103;

							BgL_tmpz00_2103 =
								BGl_bigloozd2typezd2errorz00zz__errorz00
								(BGl_string1734z00zz__kmpz00, BGl_symbol1738z00zz__kmpz00,
								BgL_arg1253z00_1194);
							return BELONG_TO_LONG(BgL_tmpz00_2103);
						}
					}
			}
		}

	}



/* &kmp-mmap */
	obj_t BGl_z62kmpzd2mmapzb0zz__kmpz00(obj_t BgL_envz00_1968,
		obj_t BgL_tpz00_1969, obj_t BgL_mmz00_1970, obj_t BgL_mz00_1971)
	{
		{	/* Unsafe/kmp.scm 79 */
			{	/* Unsafe/kmp.scm 81 */
				long BgL_tmpz00_2106;

				{	/* Unsafe/kmp.scm 81 */
					long BgL_auxz00_2121;
					obj_t BgL_auxz00_2114;
					obj_t BgL_auxz00_2107;

					{	/* Unsafe/kmp.scm 81 */
						obj_t BgL_tmpz00_2122;

						if (ELONGP(BgL_mz00_1971))
							{	/* Unsafe/kmp.scm 81 */
								BgL_tmpz00_2122 = BgL_mz00_1971;
							}
						else
							{
								obj_t BgL_auxz00_2125;

								BgL_auxz00_2125 =
									BGl_typezd2errorzd2zz__errorz00(BGl_string1731z00zz__kmpz00,
									BINT(2586L), BGl_string1740z00zz__kmpz00,
									BGl_string1743z00zz__kmpz00, BgL_mz00_1971);
								FAILURE(BgL_auxz00_2125, BFALSE, BFALSE);
							}
						BgL_auxz00_2121 = BELONG_TO_LONG(BgL_tmpz00_2122);
					}
					if (BGL_MMAPP(BgL_mmz00_1970))
						{	/* Unsafe/kmp.scm 81 */
							BgL_auxz00_2114 = BgL_mmz00_1970;
						}
					else
						{
							obj_t BgL_auxz00_2117;

							BgL_auxz00_2117 =
								BGl_typezd2errorzd2zz__errorz00(BGl_string1731z00zz__kmpz00,
								BINT(2586L), BGl_string1740z00zz__kmpz00,
								BGl_string1742z00zz__kmpz00, BgL_mmz00_1970);
							FAILURE(BgL_auxz00_2117, BFALSE, BFALSE);
						}
					if (PAIRP(BgL_tpz00_1969))
						{	/* Unsafe/kmp.scm 81 */
							BgL_auxz00_2107 = BgL_tpz00_1969;
						}
					else
						{
							obj_t BgL_auxz00_2110;

							BgL_auxz00_2110 =
								BGl_typezd2errorzd2zz__errorz00(BGl_string1731z00zz__kmpz00,
								BINT(2586L), BGl_string1740z00zz__kmpz00,
								BGl_string1741z00zz__kmpz00, BgL_tpz00_1969);
							FAILURE(BgL_auxz00_2110, BFALSE, BFALSE);
						}
					BgL_tmpz00_2106 =
						BGl_kmpzd2mmapzd2zz__kmpz00(BgL_auxz00_2107, BgL_auxz00_2114,
						BgL_auxz00_2121);
				}
				return make_belong(BgL_tmpz00_2106);
			}
		}

	}



/* kmp-string */
	BGL_EXPORTED_DEF long BGl_kmpzd2stringzd2zz__kmpz00(obj_t BgL_tpz00_7,
		obj_t BgL_strz00_8, long BgL_mz00_9)
	{
		{	/* Unsafe/kmp.scm 111 */
			{	/* Unsafe/kmp.scm 113 */
				bool_t BgL_test1781z00_2132;

				{	/* Unsafe/kmp.scm 113 */
					obj_t BgL_tmpz00_2133;

					BgL_tmpz00_2133 = CAR(BgL_tpz00_7);
					BgL_test1781z00_2132 = VECTORP(BgL_tmpz00_2133);
				}
				if (BgL_test1781z00_2132)
					{	/* Unsafe/kmp.scm 115 */
						bool_t BgL_test1782z00_2136;

						{	/* Unsafe/kmp.scm 115 */
							obj_t BgL_tmpz00_2137;

							BgL_tmpz00_2137 = CDR(BgL_tpz00_7);
							BgL_test1782z00_2136 = STRINGP(BgL_tmpz00_2137);
						}
						if (BgL_test1782z00_2136)
							{	/* Unsafe/kmp.scm 117 */
								bool_t BgL_test1783z00_2140;

								{	/* Unsafe/kmp.scm 117 */
									long BgL_arg1293z00_1229;
									long BgL_arg1295z00_1230;

									{	/* Unsafe/kmp.scm 117 */
										obj_t BgL_arg1296z00_1231;

										BgL_arg1296z00_1231 = CAR(BgL_tpz00_7);
										BgL_arg1293z00_1229 =
											VECTOR_LENGTH(((obj_t) BgL_arg1296z00_1231));
									}
									BgL_arg1295z00_1230 = (2L + STRING_LENGTH(CDR(BgL_tpz00_7)));
									BgL_test1783z00_2140 =
										(BgL_arg1293z00_1229 == BgL_arg1295z00_1230);
								}
								if (BgL_test1783z00_2140)
									{	/* Unsafe/kmp.scm 120 */
										obj_t BgL_tz00_1206;

										BgL_tz00_1206 = CAR(BgL_tpz00_7);
										{	/* Unsafe/kmp.scm 120 */
											obj_t BgL_pz00_1207;

											BgL_pz00_1207 = CDR(BgL_tpz00_7);
											{	/* Unsafe/kmp.scm 121 */
												long BgL_lsz00_1208;

												BgL_lsz00_1208 = STRING_LENGTH(BgL_strz00_8);
												{	/* Unsafe/kmp.scm 122 */
													long BgL_lpz00_1209;

													BgL_lpz00_1209 =
														STRING_LENGTH(((obj_t) BgL_pz00_1207));
													{	/* Unsafe/kmp.scm 123 */

														{
															obj_t BgL_iz00_1211;

															BgL_iz00_1211 = BINT(0L);
														BgL_zc3z04anonymousza31271ze3z87_1212:
															if (
																((long) CINT(BgL_iz00_1211) == BgL_lpz00_1209))
																{	/* Unsafe/kmp.scm 126 */
																	return BgL_mz00_9;
																}
															else
																{	/* Unsafe/kmp.scm 126 */
																	if (
																		(((long) CINT(BgL_iz00_1211) +
																				BgL_mz00_9) >= BgL_lsz00_1208))
																		{	/* Unsafe/kmp.scm 128 */
																			return (-1L);
																		}
																	else
																		{	/* Unsafe/kmp.scm 131 */
																			bool_t BgL_test1786z00_2160;

																			{	/* Unsafe/kmp.scm 131 */
																				unsigned char BgL_arg1285z00_1224;

																				BgL_arg1285z00_1224 =
																					STRING_REF(BgL_strz00_8,
																					((long) CINT(BgL_iz00_1211) +
																						BgL_mz00_9));
																				BgL_test1786z00_2160 =
																					(BgL_arg1285z00_1224 ==
																					STRING_REF(((obj_t) BgL_pz00_1207),
																						(long) CINT(BgL_iz00_1211)));
																			}
																			if (BgL_test1786z00_2160)
																				{	/* Unsafe/kmp.scm 132 */
																					long BgL_arg1281z00_1220;

																					BgL_arg1281z00_1220 =
																						((long) CINT(BgL_iz00_1211) + 1L);
																					{
																						obj_t BgL_iz00_2170;

																						BgL_iz00_2170 =
																							BINT(BgL_arg1281z00_1220);
																						BgL_iz00_1211 = BgL_iz00_2170;
																						goto
																							BgL_zc3z04anonymousza31271ze3z87_1212;
																					}
																				}
																			else
																				{	/* Unsafe/kmp.scm 133 */
																					obj_t BgL_tiz00_1221;

																					{	/* Unsafe/kmp.scm 133 */
																						long BgL_kz00_1776;

																						BgL_kz00_1776 =
																							(long) CINT(BgL_iz00_1211);
																						BgL_tiz00_1221 =
																							VECTOR_REF(
																							((obj_t) BgL_tz00_1206),
																							BgL_kz00_1776);
																					}
																					BgL_mz00_9 =
																						(BgL_mz00_9 +
																						((long) CINT(BgL_iz00_1211) -
																							(long) CINT(BgL_tiz00_1221)));
																					if (((long) CINT(BgL_iz00_1211) > 0L))
																						{
																							obj_t BgL_iz00_2182;

																							BgL_iz00_2182 = BgL_tiz00_1221;
																							BgL_iz00_1211 = BgL_iz00_2182;
																							goto
																								BgL_zc3z04anonymousza31271ze3z87_1212;
																						}
																					else
																						{

																							goto
																								BgL_zc3z04anonymousza31271ze3z87_1212;
																						}
																				}
																		}
																}
														}
													}
												}
											}
										}
									}
								else
									{	/* Unsafe/kmp.scm 117 */
										return
											(long)
											CINT(BGl_errorz00zz__errorz00(BGl_string1744z00zz__kmpz00,
												BGl_string1735z00zz__kmpz00, BgL_tpz00_7));
							}}
						else
							{	/* Unsafe/kmp.scm 116 */
								obj_t BgL_arg1322z00_1234;

								BgL_arg1322z00_1234 = CDR(BgL_tpz00_7);
								return
									(long)
									CINT(BGl_bigloozd2typezd2errorz00zz__errorz00
									(BGl_string1744z00zz__kmpz00, BGl_symbol1736z00zz__kmpz00,
										BgL_arg1322z00_1234));
					}}
				else
					{	/* Unsafe/kmp.scm 114 */
						obj_t BgL_arg1330z00_1236;

						BgL_arg1330z00_1236 = CAR(BgL_tpz00_7);
						return
							(long)
							CINT(BGl_bigloozd2typezd2errorz00zz__errorz00
							(BGl_string1744z00zz__kmpz00, BGl_symbol1738z00zz__kmpz00,
								BgL_arg1330z00_1236));
		}}}

	}



/* &kmp-string */
	obj_t BGl_z62kmpzd2stringzb0zz__kmpz00(obj_t BgL_envz00_1972,
		obj_t BgL_tpz00_1973, obj_t BgL_strz00_1974, obj_t BgL_mz00_1975)
	{
		{	/* Unsafe/kmp.scm 111 */
			{	/* Unsafe/kmp.scm 113 */
				long BgL_tmpz00_2192;

				{	/* Unsafe/kmp.scm 113 */
					long BgL_auxz00_2207;
					obj_t BgL_auxz00_2200;
					obj_t BgL_auxz00_2193;

					{	/* Unsafe/kmp.scm 113 */
						obj_t BgL_tmpz00_2208;

						if (INTEGERP(BgL_mz00_1975))
							{	/* Unsafe/kmp.scm 113 */
								BgL_tmpz00_2208 = BgL_mz00_1975;
							}
						else
							{
								obj_t BgL_auxz00_2211;

								BgL_auxz00_2211 =
									BGl_typezd2errorzd2zz__errorz00(BGl_string1731z00zz__kmpz00,
									BINT(3680L), BGl_string1745z00zz__kmpz00,
									BGl_string1746z00zz__kmpz00, BgL_mz00_1975);
								FAILURE(BgL_auxz00_2211, BFALSE, BFALSE);
							}
						BgL_auxz00_2207 = (long) CINT(BgL_tmpz00_2208);
					}
					if (STRINGP(BgL_strz00_1974))
						{	/* Unsafe/kmp.scm 113 */
							BgL_auxz00_2200 = BgL_strz00_1974;
						}
					else
						{
							obj_t BgL_auxz00_2203;

							BgL_auxz00_2203 =
								BGl_typezd2errorzd2zz__errorz00(BGl_string1731z00zz__kmpz00,
								BINT(3680L), BGl_string1745z00zz__kmpz00,
								BGl_string1733z00zz__kmpz00, BgL_strz00_1974);
							FAILURE(BgL_auxz00_2203, BFALSE, BFALSE);
						}
					if (PAIRP(BgL_tpz00_1973))
						{	/* Unsafe/kmp.scm 113 */
							BgL_auxz00_2193 = BgL_tpz00_1973;
						}
					else
						{
							obj_t BgL_auxz00_2196;

							BgL_auxz00_2196 =
								BGl_typezd2errorzd2zz__errorz00(BGl_string1731z00zz__kmpz00,
								BINT(3680L), BGl_string1745z00zz__kmpz00,
								BGl_string1741z00zz__kmpz00, BgL_tpz00_1973);
							FAILURE(BgL_auxz00_2196, BFALSE, BFALSE);
						}
					BgL_tmpz00_2192 =
						BGl_kmpzd2stringzd2zz__kmpz00(BgL_auxz00_2193, BgL_auxz00_2200,
						BgL_auxz00_2207);
				}
				return BINT(BgL_tmpz00_2192);
			}
		}

	}



/* object-init */
	obj_t BGl_objectzd2initzd2zz__kmpz00(void)
	{
		{	/* Unsafe/kmp.scm 15 */
			return BUNSPEC;
		}

	}



/* generic-init */
	obj_t BGl_genericzd2initzd2zz__kmpz00(void)
	{
		{	/* Unsafe/kmp.scm 15 */
			return BUNSPEC;
		}

	}



/* method-init */
	obj_t BGl_methodzd2initzd2zz__kmpz00(void)
	{
		{	/* Unsafe/kmp.scm 15 */
			return BUNSPEC;
		}

	}



/* imported-modules-init */
	obj_t BGl_importedzd2moduleszd2initz00zz__kmpz00(void)
	{
		{	/* Unsafe/kmp.scm 15 */
			BGl_modulezd2initializa7ationz75zz__errorz00(88804785L,
				BSTRING_TO_STRING(BGl_string1747z00zz__kmpz00));
			return
				BGl_modulezd2initializa7ationz75zz__paramz00(453939141L,
				BSTRING_TO_STRING(BGl_string1747z00zz__kmpz00));
		}

	}

#ifdef __cplusplus
}
#endif
