/*===========================================================================*/
/*   (Llib/socket.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 Llib/socket.scm -indent -o objs/obj_u/Llib/socket.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___SOCKET_TYPE_DEFINITIONS
#define BGL___SOCKET_TYPE_DEFINITIONS
#endif													// BGL___SOCKET_TYPE_DEFINITIONS
#endif													// BGL_MODULE_TYPE_DEFINITIONS

	extern obj_t bgl_gethostname_by_address(obj_t);
	extern obj_t bgl_socket_host_addr(obj_t);
	static obj_t BGl_z62socketzd2localzf3z43zz__socketz00(obj_t, obj_t);
	BGL_EXPORTED_DECL obj_t BGl_socketzd2outputzd2zz__socketz00(obj_t);
	static obj_t BGl_keyword2055z00zz__socketz00 = BUNSPEC;
	BGL_EXPORTED_DECL obj_t BGl_socketzd2portzd2numberz00zz__socketz00(obj_t);
	extern obj_t bgl_datagram_socket_send(obj_t, obj_t, obj_t, int);
	static obj_t BGl_keyword2057z00zz__socketz00 = BUNSPEC;
	extern obj_t bgl_datagram_socket_close(obj_t);
	static obj_t BGl_z62hostz62zz__socketz00(obj_t, obj_t);
	extern obj_t bgl_make_client_socket(obj_t, int, int, obj_t, obj_t, obj_t);
	static obj_t BGl_z62socketzd2hostzd2addresszd3zf3z42zz__socketz00(obj_t,
		obj_t, obj_t);
	BGL_EXPORTED_DECL obj_t BGl_socketzd2closezd2zz__socketz00(obj_t);
	extern long bgl_socket_accept_many(obj_t, bool_t, obj_t, obj_t, obj_t);
	extern obj_t bstring_to_keyword(obj_t);
	static obj_t BGl_requirezd2initializa7ationz75zz__socketz00 = BUNSPEC;
	static obj_t BGl_z62zc3z04anonymousza31249ze3ze5zz__socketz00(obj_t, obj_t);
	static obj_t BGl_keyword2067z00zz__socketz00 = BUNSPEC;
	extern obj_t bgl_make_server_socket(obj_t, int, int, obj_t);
	static obj_t BGl_symbol2027z00zz__socketz00 = BUNSPEC;
	static obj_t BGl_z62datagramzd2socketzd2portzd2numberzb0zz__socketz00(obj_t,
		obj_t);
	extern obj_t BGl_applyz00zz__r4_control_features_6_9z00(obj_t, obj_t, obj_t);
	BGL_EXPORTED_DECL obj_t BGl_socketzd2acceptzd2zz__socketz00(obj_t, obj_t,
		obj_t, obj_t);
	static obj_t BGl_z62socketzd2inputzb0zz__socketz00(obj_t, obj_t);
	static obj_t BGl_keyword2074z00zz__socketz00 = BUNSPEC;
	static obj_t BGl_keyword2076z00zz__socketz00 = BUNSPEC;
	static obj_t BGl_z62socketzd2portzd2numberz62zz__socketz00(obj_t, obj_t);
	extern obj_t bgl_setsockopt(obj_t, obj_t, obj_t);
	extern obj_t BGl_typezd2errorzd2zz__errorz00(obj_t, obj_t, obj_t, obj_t,
		obj_t);
	static obj_t BGl_z62socketzd2localzd2addressz62zz__socketz00(obj_t, obj_t);
	BGL_EXPORTED_DECL obj_t BGl_modulezd2initializa7ationz75zz__socketz00(long,
		char *);
	extern obj_t BGl_modulezd2initializa7ationz75zz__threadz00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zz__objectz00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zz__errorz00(long, char *);
	BGL_EXPORTED_DECL obj_t BGl_hostz00zz__socketz00(obj_t);
	BGL_EXPORTED_DECL obj_t BGl_makezd2clientzd2socketz00zz__socketz00(obj_t, int,
		obj_t, obj_t, obj_t, obj_t);
	static obj_t BGl_symbol2038z00zz__socketz00 = BUNSPEC;
	extern obj_t bgl_gethostname(void);
	extern obj_t bgl_gethostinterfaces(void);
	BGL_EXPORTED_DECL obj_t BGl_socketzd2acceptzd2manyz00zz__socketz00(obj_t,
		obj_t, obj_t, obj_t, obj_t);
	BGL_EXPORTED_DECL obj_t BGl_socketzd2optionzd2setz12z12zz__socketz00(obj_t,
		obj_t, obj_t);
	BGL_EXPORTED_DECL obj_t BGl_datagramzd2socketzd2outputz00zz__socketz00(obj_t);
	BGL_EXPORTED_DECL obj_t BGl_makezd2serverzd2socketz00zz__socketz00(obj_t);
	static obj_t BGl_symbol2044z00zz__socketz00 = BUNSPEC;
	static obj_t BGl_symbol2046z00zz__socketz00 = BUNSPEC;
	static obj_t BGl_symbol2049z00zz__socketz00 = BUNSPEC;
	BGL_EXPORTED_DECL obj_t BGl_socketzd2inputzd2zz__socketz00(obj_t);
	BGL_EXPORTED_DECL obj_t BGl_socketzd2hostzd2addressz00zz__socketz00(obj_t);
	static obj_t BGl_toplevelzd2initzd2zz__socketz00(void);
	static obj_t BGl_z62socketzd2outputzb0zz__socketz00(obj_t, obj_t);
	extern obj_t bgl_make_datagram_unbound_socket(obj_t);
	extern void socket_cleanup(void);
	BGL_EXPORTED_DECL obj_t BGl_z52socketzd2initz12z92zz__socketz00(void);
	static obj_t BGl__socketzd2shutdownzd2zz__socketz00(obj_t, obj_t);
	BGL_EXPORTED_DECL obj_t BGl_socketzd2localzd2addressz00zz__socketz00(obj_t);
	static obj_t BGl_z62getzd2interfaceszb0zz__socketz00(obj_t);
	static obj_t BGl_z62datagramzd2socketzd2optionzd2setz12za2zz__socketz00(obj_t,
		obj_t, obj_t, obj_t);
	static obj_t BGl_symbol2051z00zz__socketz00 = BUNSPEC;
	static obj_t BGl__hostnamez00zz__socketz00(obj_t, obj_t);
	BGL_EXPORTED_DECL obj_t BGl_hostnamez00zz__socketz00(obj_t);
	static obj_t BGl_z62datagramzd2socketzd2optionz62zz__socketz00(obj_t, obj_t,
		obj_t);
	BGL_EXPORTED_DECL obj_t
		BGl_datagramzd2socketzd2hostnamez00zz__socketz00(obj_t);
	extern obj_t bgl_getsockopt(obj_t, obj_t);
	static obj_t BGl_list2029z00zz__socketz00 = BUNSPEC;
	extern obj_t BGl_formatz00zz__r4_output_6_10_3z00(obj_t, obj_t);
	extern bool_t BGl_integerzf3zf3zz__r4_numbers_6_5_fixnumz00(obj_t);
	static obj_t BGl_z62socketzd2optionzd2setz12z70zz__socketz00(obj_t, obj_t,
		obj_t, obj_t);
	static obj_t BGl_z62zc3z04anonymousza31293ze3ze5zz__socketz00(obj_t, obj_t);
	extern obj_t BGl_dssslzd2getzd2keyzd2argzd2zz__dssslz00(obj_t, obj_t, obj_t);
	extern obj_t bgl_getprotobyname(char *);
	BGL_EXPORTED_DECL obj_t BGl_socketzd2hostnamezd2zz__socketz00(obj_t);
	static obj_t BGl_cnstzd2initzd2zz__socketz00(void);
	extern obj_t BGl_getzd2portzd2bufferz00zz__r4_ports_6_10_1z00(obj_t, obj_t,
		int);
	static obj_t BGl_z62socketzd2hostnamezb0zz__socketz00(obj_t, obj_t);
	static obj_t BGl_z62makezd2serverzd2socketz62zz__socketz00(obj_t, obj_t);
	static obj_t BGl_genericzd2initzd2zz__socketz00(void);
	static obj_t BGl_z62resolvz62zz__socketz00(obj_t, obj_t, obj_t);
	extern bool_t bgl_socket_localp(obj_t);
	static obj_t BGl_symbol2069z00zz__socketz00 = BUNSPEC;
	BGL_EXPORTED_DECL obj_t BGl_datagramzd2socketzd2receivez00zz__socketz00(obj_t,
		int);
	static obj_t BGl_importedzd2moduleszd2initz00zz__socketz00(void);
	static obj_t BGl_z62datagramzd2socketzd2receivez62zz__socketz00(obj_t, obj_t,
		obj_t);
	static obj_t BGl__makezd2datagramzd2clientzd2socketzd2zz__socketz00(obj_t,
		obj_t);
	static obj_t BGl_gczd2rootszd2initz00zz__socketz00(void);
	BGL_EXPORTED_DECL obj_t BGl_getzd2protocolszd2zz__socketz00(void);
	static obj_t BGl_z62socketzd2downzf3z43zz__socketz00(obj_t, obj_t);
	static obj_t BGl_objectzd2initzd2zz__socketz00(void);
	static obj_t BGl_z62socketzd2clientzf3z43zz__socketz00(obj_t, obj_t);
	BGL_EXPORTED_DECL obj_t BGl_datagramzd2socketzd2closez00zz__socketz00(obj_t);
	static obj_t BGl__makezd2datagramzd2serverzd2socketzd2zz__socketz00(obj_t,
		obj_t);
	static obj_t BGl_symbol2078z00zz__socketz00 = BUNSPEC;
	extern obj_t bgl_make_server_unix_socket(obj_t, int);
	BGL_EXPORTED_DECL obj_t BGl_socketzd2optionzd2zz__socketz00(obj_t, obj_t);
	extern obj_t BGl_memqz00zz__r4_pairs_and_lists_6_3z00(obj_t, obj_t);
	extern obj_t socket_close(obj_t);
	static obj_t BGl_z62socketzd2serverzf3z43zz__socketz00(obj_t, obj_t);
	static bool_t BGl_za2socketzd2initializa7edza2z75zz__socketz00;
	static obj_t BGl_symbol2082z00zz__socketz00 = BUNSPEC;
	static obj_t BGl_symbol2084z00zz__socketz00 = BUNSPEC;
	static obj_t BGl_symbol2086z00zz__socketz00 = BUNSPEC;
	static obj_t BGl_list2054z00zz__socketz00 = BUNSPEC;
	extern obj_t bgl_datagram_socket_receive(obj_t, long);
	BGL_EXPORTED_DECL bool_t BGl_socketzd2downzf3z21zz__socketz00(obj_t);
	static obj_t BGl_z62datagramzd2socketzd2sendz62zz__socketz00(obj_t, obj_t,
		obj_t, obj_t, obj_t);
	static obj_t BGl_z62z52socketzd2initz12zf0zz__socketz00(obj_t);
	BGL_EXPORTED_DECL bool_t BGl_datagramzd2socketzf3z21zz__socketz00(obj_t);
	static obj_t BGl_za2socketzd2mutexza2zd2zz__socketz00 = BUNSPEC;
	static obj_t BGl__makezd2clientzd2socketz00zz__socketz00(obj_t, obj_t);
	extern obj_t bgl_host(obj_t);
	static obj_t BGl__socketzd2acceptzd2manyz00zz__socketz00(obj_t, obj_t);
	BGL_EXPORTED_DECL bool_t BGl_socketzf3zf3zz__socketz00(obj_t);
	static obj_t BGl_list2066z00zz__socketz00 = BUNSPEC;
	BGL_EXPORTED_DECL obj_t BGl_hostinfoz00zz__socketz00(obj_t);
	extern obj_t bgl_getsockopt(obj_t, obj_t);
	static obj_t BGl_z62socketzf3z91zz__socketz00(obj_t, obj_t);
	BGL_EXPORTED_DECL obj_t
		BGl_makezd2datagramzd2clientzd2socketzd2zz__socketz00(obj_t, int, obj_t,
		obj_t);
	BGL_EXPORTED_DECL obj_t BGl_datagramzd2socketzd2inputz00zz__socketz00(obj_t);
	static obj_t BGl_z62datagramzd2socketzd2hostzd2addresszb0zz__socketz00(obj_t,
		obj_t);
	extern obj_t bstring_to_symbol(obj_t);
	BGL_EXPORTED_DECL obj_t
		BGl_datagramzd2socketzd2portzd2numberzd2zz__socketz00(obj_t);
	extern obj_t bgl_res_query(obj_t, obj_t);
	extern obj_t make_vector(long, obj_t);
	BGL_EXPORTED_DECL obj_t
		BGl_makezd2datagramzd2serverzd2socketzd2zz__socketz00(obj_t, obj_t);
	static obj_t BGl_list2073z00zz__socketz00 = BUNSPEC;
	static obj_t BGl__makezd2datagramzd2unboundzd2socketzd2zz__socketz00(obj_t,
		obj_t);
	BGL_EXPORTED_DECL obj_t BGl_datagramzd2socketzd2sendz00zz__socketz00(obj_t,
		obj_t, obj_t, int);
	BGL_EXPORTED_DECL obj_t BGl_getzd2interfaceszd2zz__socketz00(void);
	extern obj_t bgl_setsockopt(obj_t, obj_t, obj_t);
	static obj_t BGl_z62getzd2protocolszb0zz__socketz00(obj_t);
	extern bool_t bgl_socket_host_addr_cmp(obj_t, obj_t);
	BGL_EXPORTED_DECL obj_t BGl_datagramzd2socketzd2optionz00zz__socketz00(obj_t,
		obj_t);
	static obj_t BGl_z62datagramzd2socketzd2closez62zz__socketz00(obj_t, obj_t);
	extern obj_t BGl_registerzd2exitzd2functionz12z12zz__biglooz00(obj_t);
	static obj_t BGl_methodzd2initzd2zz__socketz00(void);
	static obj_t BGl_z62datagramzd2socketzd2hostnamez62zz__socketz00(obj_t,
		obj_t);
	BGL_EXPORTED_DECL int BGl_socketzd2shutdownzd2zz__socketz00(obj_t, obj_t);
	extern obj_t bgl_make_datagram_client_socket(obj_t, int, bool_t, obj_t);
	static obj_t BGl_z62socketzd2optionzb0zz__socketz00(obj_t, obj_t, obj_t);
	BGL_EXPORTED_DECL obj_t
		BGl_datagramzd2socketzd2hostzd2addresszd2zz__socketz00(obj_t);
	BGL_EXPORTED_DECL obj_t BGl_resolvz00zz__socketz00(obj_t, obj_t);
	extern obj_t BGl_mapz00zz__r4_control_features_6_9z00(obj_t, obj_t);
	BGL_EXPORTED_DECL bool_t BGl_socketzd2localzf3z21zz__socketz00(obj_t);
	extern obj_t bgl_make_datagram_server_socket(int, obj_t);
	extern obj_t bgl_socket_accept(obj_t, bool_t, obj_t, obj_t);
	static obj_t BGl_z62socketzd2hostzd2addressz62zz__socketz00(obj_t, obj_t);
	BGL_EXPORTED_DECL bool_t BGl_socketzd2clientzf3z21zz__socketz00(obj_t);
	BGL_EXPORTED_DECL obj_t
		BGl_datagramzd2socketzd2optionzd2setz12zc0zz__socketz00(obj_t, obj_t,
		obj_t);
	extern void socket_startup(void);
	extern obj_t BGl_dssslzd2getzd2keyzd2restzd2argz00zz__dssslz00(obj_t, obj_t);
	BGL_EXPORTED_DECL bool_t
		BGl_socketzd2hostzd2addresszd3zf3z20zz__socketz00(obj_t, obj_t);
	static obj_t BGl_z62getzd2protocolzb0zz__socketz00(obj_t, obj_t);
	static obj_t BGl__socketzd2acceptzd2zz__socketz00(obj_t, obj_t);
	BGL_EXPORTED_DECL bool_t BGl_socketzd2serverzf3z21zz__socketz00(obj_t);
	extern obj_t bgl_socket_local_addr(obj_t);
	extern obj_t bgl_getprotoents(void);
	extern int socket_shutdown(obj_t, int);
	static obj_t BGl_z62datagramzd2socketzd2inputz62zz__socketz00(obj_t, obj_t);
	static obj_t BGl_z62datagramzd2socketzd2outputz62zz__socketz00(obj_t, obj_t);
	extern obj_t bgl_getprotobynumber(int);
	BGL_EXPORTED_DECL bool_t
		BGl_datagramzd2socketzd2clientzf3zf3zz__socketz00(obj_t);
	static obj_t BGl_z62datagramzd2socketzd2clientzf3z91zz__socketz00(obj_t,
		obj_t);
	static obj_t BGl_keyword2030z00zz__socketz00 = BUNSPEC;
	BGL_EXPORTED_DECL obj_t
		BGl_makezd2datagramzd2unboundzd2socketzd2zz__socketz00(obj_t);
	static obj_t BGl_keyword2032z00zz__socketz00 = BUNSPEC;
	static obj_t BGl_keyword2034z00zz__socketz00 = BUNSPEC;
	static obj_t BGl_keyword2036z00zz__socketz00 = BUNSPEC;
	extern obj_t bgl_make_client_unix_socket(obj_t, int, obj_t, obj_t);
	BGL_EXPORTED_DECL bool_t
		BGl_datagramzd2socketzd2serverzf3zf3zz__socketz00(obj_t);
	static obj_t BGl_z62datagramzd2socketzf3z43zz__socketz00(obj_t, obj_t);
	BGL_EXPORTED_DECL obj_t BGl_getzd2protocolzd2zz__socketz00(obj_t);
	static obj_t BGl_z62datagramzd2socketzd2serverzf3z91zz__socketz00(obj_t,
		obj_t);
	extern obj_t BGl_errorz00zz__errorz00(obj_t, obj_t, obj_t);
	extern obj_t bgl_hostinfo(obj_t);
	static obj_t BGl_z62hostinfoz62zz__socketz00(obj_t, obj_t);
	static obj_t BGl_z62socketzd2closezb0zz__socketz00(obj_t, obj_t);
	static obj_t *__cnst;


	   
		 
		BGL_DEFINE_STRING(BGl_string2040z00zz__socketz00,
		BgL_bgl_string2040za700za7za7_2120za7, "Illegal keyword argument", 24);
	      BGL_DEFINE_STRING(BGl_string2041z00zz__socketz00,
		BgL_bgl_string2041za700za7za7_2121za7,
		"wrong number of arguments: [2..6] expected, provided", 52);
	      BGL_DEFINE_STRING(BGl_string2042z00zz__socketz00,
		BgL_bgl_string2042za700za7za7_2122za7, "bint", 4);
	      BGL_DEFINE_STRING(BGl_string2043z00zz__socketz00,
		BgL_bgl_string2043za700za7za7_2123za7, "make-client-socket", 18);
	      DEFINE_EXPORT_BGL_PROCEDURE(BGl_hostinfozd2envzd2zz__socketz00,
		BgL_bgl_za762hostinfoza762za7za72124z00, BGl_z62hostinfoz62zz__socketz00,
		0L, BUNSPEC, 1);
	      BGL_DEFINE_STRING(BGl_string2045z00zz__socketz00,
		BgL_bgl_string2045za700za7za7_2125za7, "inet6", 5);
	      DEFINE_EXPORT_BGL_PROCEDURE(BGl_socketzd2closezd2envz00zz__socketz00,
		BgL_bgl_za762socketza7d2clos2126z00, BGl_z62socketzd2closezb0zz__socketz00,
		0L, BUNSPEC, 1);
	      BGL_DEFINE_STRING(BGl_string2047z00zz__socketz00,
		BgL_bgl_string2047za700za7za7_2127za7, "unspec", 6);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_makezd2datagramzd2clientzd2socketzd2envz00zz__socketz00,
		BgL_bgl__makeza7d2datagram2128za7, opt_generic_entry,
		BGl__makezd2datagramzd2clientzd2socketzd2zz__socketz00, BFALSE, -1);
	      BGL_DEFINE_STRING(BGl_string2048z00zz__socketz00,
		BgL_bgl_string2048za700za7za7_2129za7, "symbol", 6);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_makezd2datagramzd2serverzd2socketzd2envz00zz__socketz00,
		BgL_bgl__makeza7d2datagram2130za7, opt_generic_entry,
		BGl__makezd2datagramzd2serverzd2socketzd2zz__socketz00, BFALSE, -1);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_datagramzd2socketzd2receivezd2envzd2zz__socketz00,
		BgL_bgl_za762datagramza7d2so2131z00,
		BGl_z62datagramzd2socketzd2receivez62zz__socketz00, 0L, BUNSPEC, 2);
	      BGL_DEFINE_STRING(BGl_string2050z00zz__socketz00,
		BgL_bgl_string2050za700za7za7_2132za7, "unix", 4);
	      BGL_DEFINE_STRING(BGl_string2052z00zz__socketz00,
		BgL_bgl_string2052za700za7za7_2133za7, "local", 5);
	      BGL_DEFINE_STRING(BGl_string2053z00zz__socketz00,
		BgL_bgl_string2053za700za7za7_2134za7, "Unknown socket domain", 21);
	      BGL_DEFINE_STRING(BGl_string2056z00zz__socketz00,
		BgL_bgl_string2056za700za7za7_2135za7, "backlog", 7);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_datagramzd2socketzd2sendzd2envzd2zz__socketz00,
		BgL_bgl_za762datagramza7d2so2136z00,
		BGl_z62datagramzd2socketzd2sendz62zz__socketz00, 0L, BUNSPEC, 4);
	      BGL_DEFINE_STRING(BGl_string2058z00zz__socketz00,
		BgL_bgl_string2058za700za7za7_2137za7, "name", 4);
	      BGL_DEFINE_STRING(BGl_string2059z00zz__socketz00,
		BgL_bgl_string2059za700za7za7_2138za7, "make-server-socket", 18);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_makezd2clientzd2socketzd2envzd2zz__socketz00,
		BgL_bgl__makeza7d2clientza7d2139z00, opt_generic_entry,
		BGl__makezd2clientzd2socketz00zz__socketz00, BFALSE, -1);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_socketzd2acceptzd2manyzd2envzd2zz__socketz00,
		BgL_bgl__socketza7d2accept2140za7, opt_generic_entry,
		BGl__socketzd2acceptzd2manyz00zz__socketz00, BFALSE, -1);
	      BGL_DEFINE_STRING(BGl_string2060z00zz__socketz00,
		BgL_bgl_string2060za700za7za7_2141za7, "Unsupported domain", 18);
	      BGL_DEFINE_STRING(BGl_string2062z00zz__socketz00,
		BgL_bgl_string2062za700za7za7_2142za7, "Illegal extra key arguments: ", 29);
	      BGL_DEFINE_STRING(BGl_string2063z00zz__socketz00,
		BgL_bgl_string2063za700za7za7_2143za7, "dsssl-get-key-arg", 17);
	      BGL_DEFINE_STRING(BGl_string2064z00zz__socketz00,
		BgL_bgl_string2064za700za7za7_2144za7, "~a ", 3);
	      BGL_DEFINE_STRING(BGl_string2065z00zz__socketz00,
		BgL_bgl_string2065za700za7za7_2145za7, "_socket-accept", 14);
	      DEFINE_EXPORT_BGL_PROCEDURE(BGl_socketzd2optionzd2envz00zz__socketz00,
		BgL_bgl_za762socketza7d2opti2146z00, BGl_z62socketzd2optionzb0zz__socketz00,
		0L, BUNSPEC, 2);
	      BGL_DEFINE_STRING(BGl_string2068z00zz__socketz00,
		BgL_bgl_string2068za700za7za7_2147za7, "errp", 4);
	      DEFINE_EXPORT_BGL_PROCEDURE(BGl_socketzd2shutdownzd2envz00zz__socketz00,
		BgL_bgl__socketza7d2shutdo2148za7, opt_generic_entry,
		BGl__socketzd2shutdownzd2zz__socketz00, BFALSE, -1);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_makezd2serverzd2socketzd2envzd2zz__socketz00,
		BgL_bgl_za762makeza7d2server2149z00, va_generic_entry,
		BGl_z62makezd2serverzd2socketz62zz__socketz00, BUNSPEC, -1);
	extern obj_t BGl_stringzd2appendzd2envz00zz__r4_strings_6_7z00;
	   
		 
		DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2061z00zz__socketz00,
		BgL_bgl_za762za7c3za704anonymo2150za7,
		BGl_z62zc3z04anonymousza31293ze3ze5zz__socketz00, 0L, BUNSPEC, 1);
	      BGL_DEFINE_STRING(BGl_string2070z00zz__socketz00,
		BgL_bgl_string2070za700za7za7_2151za7, "socket-accept", 13);
	      BGL_DEFINE_STRING(BGl_string2071z00zz__socketz00,
		BgL_bgl_string2071za700za7za7_2152za7,
		"wrong number of arguments: [1..4] expected, provided", 52);
	      BGL_DEFINE_STRING(BGl_string2072z00zz__socketz00,
		BgL_bgl_string2072za700za7za7_2153za7, "_socket-accept-many", 19);
	      BGL_DEFINE_STRING(BGl_string2075z00zz__socketz00,
		BgL_bgl_string2075za700za7za7_2154za7, "inbufs", 6);
	     
		DEFINE_EXPORT_BGL_PROCEDURE(BGl_z52socketzd2initz12zd2envz40zz__socketz00,
		BgL_bgl_za762za752socketza7d2i2155za7,
		BGl_z62z52socketzd2initz12zf0zz__socketz00, 0L, BUNSPEC, 0);
	      BGL_DEFINE_STRING(BGl_string2077z00zz__socketz00,
		BgL_bgl_string2077za700za7za7_2156za7, "outbufs", 7);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_socketzd2portzd2numberzd2envzd2zz__socketz00,
		BgL_bgl_za762socketza7d2port2157z00,
		BGl_z62socketzd2portzd2numberz62zz__socketz00, 0L, BUNSPEC, 1);
	      BGL_DEFINE_STRING(BGl_string2079z00zz__socketz00,
		BgL_bgl_string2079za700za7za7_2158za7, "socket-accept-many", 18);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_socketzd2localzd2addresszd2envzd2zz__socketz00,
		BgL_bgl_za762socketza7d2loca2159z00,
		BGl_z62socketzd2localzd2addressz62zz__socketz00, 0L, BUNSPEC, 1);
	      BGL_DEFINE_STRING(BGl_string2080z00zz__socketz00,
		BgL_bgl_string2080za700za7za7_2160za7,
		"wrong number of arguments: [2..5] expected, provided", 52);
	      BGL_DEFINE_STRING(BGl_string2081z00zz__socketz00,
		BgL_bgl_string2081za700za7za7_2161za7, "_socket-shutdown", 16);
	      BGL_DEFINE_STRING(BGl_string2083z00zz__socketz00,
		BgL_bgl_string2083za700za7za7_2162za7, "RDWR", 4);
	      BGL_DEFINE_STRING(BGl_string2085z00zz__socketz00,
		BgL_bgl_string2085za700za7za7_2163za7, "WR", 2);
	      BGL_DEFINE_STRING(BGl_string2087z00zz__socketz00,
		BgL_bgl_string2087za700za7za7_2164za7, "RD", 2);
	      BGL_DEFINE_STRING(BGl_string2088z00zz__socketz00,
		BgL_bgl_string2088za700za7za7_2165za7, "socket-shutdown", 15);
	      BGL_DEFINE_STRING(BGl_string2089z00zz__socketz00,
		BgL_bgl_string2089za700za7za7_2166za7, "wrong optional argument", 23);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_datagramzd2socketzd2portzd2numberzd2envz00zz__socketz00,
		BgL_bgl_za762datagramza7d2so2167z00,
		BGl_z62datagramzd2socketzd2portzd2numberzb0zz__socketz00, 0L, BUNSPEC, 1);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_datagramzd2socketzd2clientzf3zd2envz21zz__socketz00,
		BgL_bgl_za762datagramza7d2so2168z00,
		BGl_z62datagramzd2socketzd2clientzf3z91zz__socketz00, 0L, BUNSPEC, 1);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_makezd2datagramzd2unboundzd2socketzd2envz00zz__socketz00,
		BgL_bgl__makeza7d2datagram2169za7, opt_generic_entry,
		BGl__makezd2datagramzd2unboundzd2socketzd2zz__socketz00, BFALSE, -1);
	      BGL_DEFINE_STRING(BGl_string2090z00zz__socketz00,
		BgL_bgl_string2090za700za7za7_2170za7, "&socket-close", 13);
	      BGL_DEFINE_STRING(BGl_string2091z00zz__socketz00,
		BgL_bgl_string2091za700za7za7_2171za7, "&host", 5);
	      BGL_DEFINE_STRING(BGl_string2092z00zz__socketz00,
		BgL_bgl_string2092za700za7za7_2172za7, "&hostinfo", 9);
	      BGL_DEFINE_STRING(BGl_string2093z00zz__socketz00,
		BgL_bgl_string2093za700za7za7_2173za7, "_hostname", 9);
	      BGL_DEFINE_STRING(BGl_string2094z00zz__socketz00,
		BgL_bgl_string2094za700za7za7_2174za7, "&resolv", 7);
	      BGL_DEFINE_STRING(BGl_string2095z00zz__socketz00,
		BgL_bgl_string2095za700za7za7_2175za7, "&socket-option", 14);
	      BGL_DEFINE_STRING(BGl_string2096z00zz__socketz00,
		BgL_bgl_string2096za700za7za7_2176za7, "keyword", 7);
	      BGL_DEFINE_STRING(BGl_string2097z00zz__socketz00,
		BgL_bgl_string2097za700za7za7_2177za7, "&socket-option-set!", 19);
	      BGL_DEFINE_STRING(BGl_string2098z00zz__socketz00,
		BgL_bgl_string2098za700za7za7_2178za7, "&datagram-socket-hostname", 25);
	      BGL_DEFINE_STRING(BGl_string2099z00zz__socketz00,
		BgL_bgl_string2099za700za7za7_2179za7, "datagram-socket", 15);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_datagramzd2socketzd2serverzf3zd2envz21zz__socketz00,
		BgL_bgl_za762datagramza7d2so2180z00,
		BGl_z62datagramzd2socketzd2serverzf3z91zz__socketz00, 0L, BUNSPEC, 1);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_socketzd2optionzd2setz12zd2envzc0zz__socketz00,
		BgL_bgl_za762socketza7d2opti2181z00,
		BGl_z62socketzd2optionzd2setz12z70zz__socketz00, 0L, BUNSPEC, 3);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_datagramzd2socketzd2outputzd2envzd2zz__socketz00,
		BgL_bgl_za762datagramza7d2so2182z00,
		BGl_z62datagramzd2socketzd2outputz62zz__socketz00, 0L, BUNSPEC, 1);
	      DEFINE_EXPORT_BGL_PROCEDURE(BGl_resolvzd2envzd2zz__socketz00,
		BgL_bgl_za762resolvza762za7za7__2183z00, BGl_z62resolvz62zz__socketz00, 0L,
		BUNSPEC, 2);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_datagramzd2socketzd2optionzd2setz12zd2envz12zz__socketz00,
		BgL_bgl_za762datagramza7d2so2184z00,
		BGl_z62datagramzd2socketzd2optionzd2setz12za2zz__socketz00, 0L, BUNSPEC, 3);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_socketzd2hostzd2addresszd3zf3zd2envzf2zz__socketz00,
		BgL_bgl_za762socketza7d2host2185z00,
		BGl_z62socketzd2hostzd2addresszd3zf3z42zz__socketz00, 0L, BUNSPEC, 2);
	      DEFINE_EXPORT_BGL_PROCEDURE(BGl_socketzf3zd2envz21zz__socketz00,
		BgL_bgl_za762socketza7f3za791za72186z00, BGl_z62socketzf3z91zz__socketz00,
		0L, BUNSPEC, 1);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_datagramzd2socketzd2inputzd2envzd2zz__socketz00,
		BgL_bgl_za762datagramza7d2so2187z00,
		BGl_z62datagramzd2socketzd2inputz62zz__socketz00, 0L, BUNSPEC, 1);
	      DEFINE_EXPORT_BGL_PROCEDURE(BGl_socketzd2hostnamezd2envz00zz__socketz00,
		BgL_bgl_za762socketza7d2host2188z00,
		BGl_z62socketzd2hostnamezb0zz__socketz00, 0L, BUNSPEC, 1);
	      DEFINE_EXPORT_BGL_PROCEDURE(BGl_socketzd2acceptzd2envz00zz__socketz00,
		BgL_bgl__socketza7d2accept2189za7, opt_generic_entry,
		BGl__socketzd2acceptzd2zz__socketz00, BFALSE, -1);
	      DEFINE_EXPORT_BGL_PROCEDURE(BGl_hostzd2envzd2zz__socketz00,
		BgL_bgl_za762hostza762za7za7__so2190z00, BGl_z62hostz62zz__socketz00, 0L,
		BUNSPEC, 1);
	      DEFINE_EXPORT_BGL_PROCEDURE(BGl_getzd2protocolzd2envz00zz__socketz00,
		BgL_bgl_za762getza7d2protoco2191z00, BGl_z62getzd2protocolzb0zz__socketz00,
		0L, BUNSPEC, 1);
	      DEFINE_EXPORT_BGL_PROCEDURE(BGl_socketzd2localzf3zd2envzf3zz__socketz00,
		BgL_bgl_za762socketza7d2loca2192z00,
		BGl_z62socketzd2localzf3z43zz__socketz00, 0L, BUNSPEC, 1);
	      DEFINE_EXPORT_BGL_PROCEDURE(BGl_socketzd2inputzd2envz00zz__socketz00,
		BgL_bgl_za762socketza7d2inpu2193z00, BGl_z62socketzd2inputzb0zz__socketz00,
		0L, BUNSPEC, 1);
	      DEFINE_EXPORT_BGL_PROCEDURE(BGl_socketzd2outputzd2envz00zz__socketz00,
		BgL_bgl_za762socketza7d2outp2194z00, BGl_z62socketzd2outputzb0zz__socketz00,
		0L, BUNSPEC, 1);
	      DEFINE_EXPORT_BGL_PROCEDURE(BGl_socketzd2downzf3zd2envzf3zz__socketz00,
		BgL_bgl_za762socketza7d2down2195z00,
		BGl_z62socketzd2downzf3z43zz__socketz00, 0L, BUNSPEC, 1);
	     
		DEFINE_EXPORT_BGL_PROCEDURE(BGl_socketzd2clientzf3zd2envzf3zz__socketz00,
		BgL_bgl_za762socketza7d2clie2196z00,
		BGl_z62socketzd2clientzf3z43zz__socketz00, 0L, BUNSPEC, 1);
	     
		DEFINE_EXPORT_BGL_PROCEDURE(BGl_socketzd2serverzf3zd2envzf3zz__socketz00,
		BgL_bgl_za762socketza7d2serv2197z00,
		BGl_z62socketzd2serverzf3z43zz__socketz00, 0L, BUNSPEC, 1);
	      BGL_DEFINE_STRING(BGl_string2012z00zz__socketz00,
		BgL_bgl_string2012za700za7za7_2198za7, "socket", 6);
	      BGL_DEFINE_STRING(BGl_string2014z00zz__socketz00,
		BgL_bgl_string2014za700za7za7_2199za7,
		"/tmp/bigloo/runtime/Llib/socket.scm", 35);
	      BGL_DEFINE_STRING(BGl_string2015z00zz__socketz00,
		BgL_bgl_string2015za700za7za7_2200za7, "&socket-hostname", 16);
	      BGL_DEFINE_STRING(BGl_string2016z00zz__socketz00,
		BgL_bgl_string2016za700za7za7_2201za7, "&socket-host-address", 20);
	      BGL_DEFINE_STRING(BGl_string2017z00zz__socketz00,
		BgL_bgl_string2017za700za7za7_2202za7, "&socket-local-address", 21);
	      BGL_DEFINE_STRING(BGl_string2018z00zz__socketz00,
		BgL_bgl_string2018za700za7za7_2203za7, "&socket-local?", 14);
	      BGL_DEFINE_STRING(BGl_string2019z00zz__socketz00,
		BgL_bgl_string2019za700za7za7_2204za7, "&socket-host-address=?", 22);
	      DEFINE_EXPORT_BGL_PROCEDURE(BGl_getzd2interfaceszd2envz00zz__socketz00,
		BgL_bgl_za762getza7d2interfa2205z00,
		BGl_z62getzd2interfaceszb0zz__socketz00, 0L, BUNSPEC, 0);
	      DEFINE_EXPORT_BGL_PROCEDURE(BGl_getzd2protocolszd2envz00zz__socketz00,
		BgL_bgl_za762getza7d2protoco2206z00, BGl_z62getzd2protocolszb0zz__socketz00,
		0L, BUNSPEC, 0);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_datagramzd2socketzd2closezd2envzd2zz__socketz00,
		BgL_bgl_za762datagramza7d2so2207z00,
		BGl_z62datagramzd2socketzd2closez62zz__socketz00, 0L, BUNSPEC, 1);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_datagramzd2socketzd2optionzd2envzd2zz__socketz00,
		BgL_bgl_za762datagramza7d2so2208z00,
		BGl_z62datagramzd2socketzd2optionz62zz__socketz00, 0L, BUNSPEC, 2);
	      BGL_DEFINE_STRING(BGl_string2100z00zz__socketz00,
		BgL_bgl_string2100za700za7za7_2209za7, "&datagram-socket-host-address", 29);
	      DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2013z00zz__socketz00,
		BgL_bgl_za762za7c3za704anonymo2210za7,
		BGl_z62zc3z04anonymousza31249ze3ze5zz__socketz00, 0L, BUNSPEC, 1);
	      BGL_DEFINE_STRING(BGl_string2101z00zz__socketz00,
		BgL_bgl_string2101za700za7za7_2211za7, "&datagram-socket-port-number", 28);
	      BGL_DEFINE_STRING(BGl_string2020z00zz__socketz00,
		BgL_bgl_string2020za700za7za7_2212za7, "bstring", 7);
	      BGL_DEFINE_STRING(BGl_string2102z00zz__socketz00,
		BgL_bgl_string2102za700za7za7_2213za7, "datagram-socket-output", 22);
	      BGL_DEFINE_STRING(BGl_string2021z00zz__socketz00,
		BgL_bgl_string2021za700za7za7_2214za7, "&socket-down?", 13);
	      BGL_DEFINE_STRING(BGl_string2103z00zz__socketz00,
		BgL_bgl_string2103za700za7za7_2215za7, "Datagram-socket has no output port",
		34);
	      BGL_DEFINE_STRING(BGl_string2022z00zz__socketz00,
		BgL_bgl_string2022za700za7za7_2216za7, "&socket-port-number", 19);
	      BGL_DEFINE_STRING(BGl_string2104z00zz__socketz00,
		BgL_bgl_string2104za700za7za7_2217za7, "&datagram-socket-output", 23);
	      BGL_DEFINE_STRING(BGl_string2023z00zz__socketz00,
		BgL_bgl_string2023za700za7za7_2218za7, "&socket-input", 13);
	      BGL_DEFINE_STRING(BGl_string2105z00zz__socketz00,
		BgL_bgl_string2105za700za7za7_2219za7, "datagram-socket-input", 21);
	      BGL_DEFINE_STRING(BGl_string2024z00zz__socketz00,
		BgL_bgl_string2024za700za7za7_2220za7, "&socket-output", 14);
	      BGL_DEFINE_STRING(BGl_string2106z00zz__socketz00,
		BgL_bgl_string2106za700za7za7_2221za7, "Datagram-socket has no input port",
		33);
	      BGL_DEFINE_STRING(BGl_string2025z00zz__socketz00,
		BgL_bgl_string2025za700za7za7_2222za7, "_make-client-socket", 19);
	      BGL_DEFINE_STRING(BGl_string2107z00zz__socketz00,
		BgL_bgl_string2107za700za7za7_2223za7, "&datagram-socket-input", 22);
	      BGL_DEFINE_STRING(BGl_string2026z00zz__socketz00,
		BgL_bgl_string2026za700za7za7_2224za7, "vector", 6);
	      BGL_DEFINE_STRING(BGl_string2108z00zz__socketz00,
		BgL_bgl_string2108za700za7za7_2225za7, "_make-datagram-server-socket", 28);
	      BGL_DEFINE_STRING(BGl_string2109z00zz__socketz00,
		BgL_bgl_string2109za700za7za7_2226za7, "make-datagram-server-socket", 27);
	      BGL_DEFINE_STRING(BGl_string2028z00zz__socketz00,
		BgL_bgl_string2028za700za7za7_2227za7, "inet", 4);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_datagramzd2socketzd2hostzd2addresszd2envz00zz__socketz00,
		BgL_bgl_za762datagramza7d2so2228z00,
		BGl_z62datagramzd2socketzd2hostzd2addresszb0zz__socketz00, 0L, BUNSPEC, 1);
	      BGL_DEFINE_STRING(BGl_string2110z00zz__socketz00,
		BgL_bgl_string2110za700za7za7_2229za7, "_make-datagram-unbound-socket", 29);
	      BGL_DEFINE_STRING(BGl_string2111z00zz__socketz00,
		BgL_bgl_string2111za700za7za7_2230za7, "make-datagram-unbound-socket", 28);
	      BGL_DEFINE_STRING(BGl_string2112z00zz__socketz00,
		BgL_bgl_string2112za700za7za7_2231za7, "_make-datagram-client-socket", 28);
	      BGL_DEFINE_STRING(BGl_string2031z00zz__socketz00,
		BgL_bgl_string2031za700za7za7_2232za7, "domain", 6);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_socketzd2hostzd2addresszd2envzd2zz__socketz00,
		BgL_bgl_za762socketza7d2host2233z00,
		BGl_z62socketzd2hostzd2addressz62zz__socketz00, 0L, BUNSPEC, 1);
	      BGL_DEFINE_STRING(BGl_string2113z00zz__socketz00,
		BgL_bgl_string2113za700za7za7_2234za7, "make-datagram-client-socket", 27);
	      BGL_DEFINE_STRING(BGl_string2114z00zz__socketz00,
		BgL_bgl_string2114za700za7za7_2235za7, "&datagram-socket-close", 22);
	      BGL_DEFINE_STRING(BGl_string2033z00zz__socketz00,
		BgL_bgl_string2033za700za7za7_2236za7, "inbuf", 5);
	      BGL_DEFINE_STRING(BGl_string2115z00zz__socketz00,
		BgL_bgl_string2115za700za7za7_2237za7, "&datagram-socket-receive", 24);
	      BGL_DEFINE_STRING(BGl_string2116z00zz__socketz00,
		BgL_bgl_string2116za700za7za7_2238za7, "&datagram-socket-send", 21);
	      BGL_DEFINE_STRING(BGl_string2035z00zz__socketz00,
		BgL_bgl_string2035za700za7za7_2239za7, "outbuf", 6);
	      BGL_DEFINE_STRING(BGl_string2117z00zz__socketz00,
		BgL_bgl_string2117za700za7za7_2240za7, "&datagram-socket-option", 23);
	      BGL_DEFINE_STRING(BGl_string2118z00zz__socketz00,
		BgL_bgl_string2118za700za7za7_2241za7, "&datagram-socket-option-set!", 28);
	      BGL_DEFINE_STRING(BGl_string2037z00zz__socketz00,
		BgL_bgl_string2037za700za7za7_2242za7, "timeout", 7);
	      BGL_DEFINE_STRING(BGl_string2119z00zz__socketz00,
		BgL_bgl_string2119za700za7za7_2243za7, "__socket", 8);
	      BGL_DEFINE_STRING(BGl_string2039z00zz__socketz00,
		BgL_bgl_string2039za700za7za7_2244za7, "make-client-socket::socket", 26);
	     
		DEFINE_EXPORT_BGL_PROCEDURE(BGl_datagramzd2socketzf3zd2envzf3zz__socketz00,
		BgL_bgl_za762datagramza7d2so2245z00,
		BGl_z62datagramzd2socketzf3z43zz__socketz00, 0L, BUNSPEC, 1);
	      DEFINE_EXPORT_BGL_PROCEDURE(BGl_hostnamezd2envzd2zz__socketz00,
		BgL_bgl__hostnameza700za7za7__2246za7, opt_generic_entry,
		BGl__hostnamez00zz__socketz00, BFALSE, -1);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_datagramzd2socketzd2hostnamezd2envzd2zz__socketz00,
		BgL_bgl_za762datagramza7d2so2247z00,
		BGl_z62datagramzd2socketzd2hostnamez62zz__socketz00, 0L, BUNSPEC, 1);

/* contant bindings */
	static void bgl_constant_bindings()
	{
		BGL_BIND_PROCEDURE(BGl_datagramzd2socketzd2hostnamezd2envzd2zz__socketz00,
			BgL_bgl_za762datagramza7d2so2247z00);
		BGL_BIND_PROCEDURE(BGl_hostnamezd2envzd2zz__socketz00,
			BgL_bgl__hostnameza700za7za7__2246za7);
		BGL_BIND_PROCEDURE(BGl_datagramzd2socketzf3zd2envzf3zz__socketz00,
			BgL_bgl_za762datagramza7d2so2245z00);
		BGL_BIND_STRING(BGl_string2039z00zz__socketz00,
			BgL_bgl_string2039za700za7za7_2244za7);
		BGL_BIND_STRING(BGl_string2119z00zz__socketz00,
			BgL_bgl_string2119za700za7za7_2243za7);
		BGL_BIND_STRING(BGl_string2037z00zz__socketz00,
			BgL_bgl_string2037za700za7za7_2242za7);
		BGL_BIND_STRING(BGl_string2118z00zz__socketz00,
			BgL_bgl_string2118za700za7za7_2241za7);
		BGL_BIND_STRING(BGl_string2117z00zz__socketz00,
			BgL_bgl_string2117za700za7za7_2240za7);
		BGL_BIND_STRING(BGl_string2035z00zz__socketz00,
			BgL_bgl_string2035za700za7za7_2239za7);
		BGL_BIND_STRING(BGl_string2116z00zz__socketz00,
			BgL_bgl_string2116za700za7za7_2238za7);
		BGL_BIND_STRING(BGl_string2115z00zz__socketz00,
			BgL_bgl_string2115za700za7za7_2237za7);
		BGL_BIND_STRING(BGl_string2033z00zz__socketz00,
			BgL_bgl_string2033za700za7za7_2236za7);
		BGL_BIND_STRING(BGl_string2114z00zz__socketz00,
			BgL_bgl_string2114za700za7za7_2235za7);
		BGL_BIND_STRING(BGl_string2113z00zz__socketz00,
			BgL_bgl_string2113za700za7za7_2234za7);
		BGL_BIND_PROCEDURE(BGl_socketzd2hostzd2addresszd2envzd2zz__socketz00,
			BgL_bgl_za762socketza7d2host2233z00);
		BGL_BIND_STRING(BGl_string2031z00zz__socketz00,
			BgL_bgl_string2031za700za7za7_2232za7);
		BGL_BIND_STRING(BGl_string2112z00zz__socketz00,
			BgL_bgl_string2112za700za7za7_2231za7);
		BGL_BIND_STRING(BGl_string2111z00zz__socketz00,
			BgL_bgl_string2111za700za7za7_2230za7);
		BGL_BIND_STRING(BGl_string2110z00zz__socketz00,
			BgL_bgl_string2110za700za7za7_2229za7);
		BGL_BIND_PROCEDURE
			(BGl_datagramzd2socketzd2hostzd2addresszd2envz00zz__socketz00,
			BgL_bgl_za762datagramza7d2so2228z00);
		BGL_BIND_STRING(BGl_string2028z00zz__socketz00,
			BgL_bgl_string2028za700za7za7_2227za7);
		BGL_BIND_STRING(BGl_string2109z00zz__socketz00,
			BgL_bgl_string2109za700za7za7_2226za7);
		BGL_BIND_STRING(BGl_string2108z00zz__socketz00,
			BgL_bgl_string2108za700za7za7_2225za7);
		BGL_BIND_STRING(BGl_string2026z00zz__socketz00,
			BgL_bgl_string2026za700za7za7_2224za7);
		BGL_BIND_STRING(BGl_string2107z00zz__socketz00,
			BgL_bgl_string2107za700za7za7_2223za7);
		BGL_BIND_STRING(BGl_string2025z00zz__socketz00,
			BgL_bgl_string2025za700za7za7_2222za7);
		BGL_BIND_STRING(BGl_string2106z00zz__socketz00,
			BgL_bgl_string2106za700za7za7_2221za7);
		BGL_BIND_STRING(BGl_string2024z00zz__socketz00,
			BgL_bgl_string2024za700za7za7_2220za7);
		BGL_BIND_STRING(BGl_string2105z00zz__socketz00,
			BgL_bgl_string2105za700za7za7_2219za7);
		BGL_BIND_STRING(BGl_string2023z00zz__socketz00,
			BgL_bgl_string2023za700za7za7_2218za7);
		BGL_BIND_STRING(BGl_string2104z00zz__socketz00,
			BgL_bgl_string2104za700za7za7_2217za7);
		BGL_BIND_STRING(BGl_string2022z00zz__socketz00,
			BgL_bgl_string2022za700za7za7_2216za7);
		BGL_BIND_STRING(BGl_string2103z00zz__socketz00,
			BgL_bgl_string2103za700za7za7_2215za7);
		BGL_BIND_STRING(BGl_string2021z00zz__socketz00,
			BgL_bgl_string2021za700za7za7_2214za7);
		BGL_BIND_STRING(BGl_string2102z00zz__socketz00,
			BgL_bgl_string2102za700za7za7_2213za7);
		BGL_BIND_STRING(BGl_string2020z00zz__socketz00,
			BgL_bgl_string2020za700za7za7_2212za7);
		BGL_BIND_STRING(BGl_string2101z00zz__socketz00,
			BgL_bgl_string2101za700za7za7_2211za7);
		BGL_BIND_PROCEDURE(BGl_proc2013z00zz__socketz00,
			BgL_bgl_za762za7c3za704anonymo2210za7);
		BGL_BIND_STRING(BGl_string2100z00zz__socketz00,
			BgL_bgl_string2100za700za7za7_2209za7);
		BGL_BIND_PROCEDURE(BGl_datagramzd2socketzd2optionzd2envzd2zz__socketz00,
			BgL_bgl_za762datagramza7d2so2208z00);
		BGL_BIND_PROCEDURE(BGl_datagramzd2socketzd2closezd2envzd2zz__socketz00,
			BgL_bgl_za762datagramza7d2so2207z00);
		BGL_BIND_PROCEDURE(BGl_getzd2protocolszd2envz00zz__socketz00,
			BgL_bgl_za762getza7d2protoco2206z00);
		BGL_BIND_PROCEDURE(BGl_getzd2interfaceszd2envz00zz__socketz00,
			BgL_bgl_za762getza7d2interfa2205z00);
		BGL_BIND_STRING(BGl_string2019z00zz__socketz00,
			BgL_bgl_string2019za700za7za7_2204za7);
		BGL_BIND_STRING(BGl_string2018z00zz__socketz00,
			BgL_bgl_string2018za700za7za7_2203za7);
		BGL_BIND_STRING(BGl_string2017z00zz__socketz00,
			BgL_bgl_string2017za700za7za7_2202za7);
		BGL_BIND_STRING(BGl_string2016z00zz__socketz00,
			BgL_bgl_string2016za700za7za7_2201za7);
		BGL_BIND_STRING(BGl_string2015z00zz__socketz00,
			BgL_bgl_string2015za700za7za7_2200za7);
		BGL_BIND_STRING(BGl_string2014z00zz__socketz00,
			BgL_bgl_string2014za700za7za7_2199za7);
		BGL_BIND_STRING(BGl_string2012z00zz__socketz00,
			BgL_bgl_string2012za700za7za7_2198za7);
		BGL_BIND_PROCEDURE(BGl_socketzd2serverzf3zd2envzf3zz__socketz00,
			BgL_bgl_za762socketza7d2serv2197z00);
		BGL_BIND_PROCEDURE(BGl_socketzd2clientzf3zd2envzf3zz__socketz00,
			BgL_bgl_za762socketza7d2clie2196z00);
		BGL_BIND_PROCEDURE(BGl_socketzd2downzf3zd2envzf3zz__socketz00,
			BgL_bgl_za762socketza7d2down2195z00);
		BGL_BIND_PROCEDURE(BGl_socketzd2outputzd2envz00zz__socketz00,
			BgL_bgl_za762socketza7d2outp2194z00);
		BGL_BIND_PROCEDURE(BGl_socketzd2inputzd2envz00zz__socketz00,
			BgL_bgl_za762socketza7d2inpu2193z00);
		BGL_BIND_PROCEDURE(BGl_socketzd2localzf3zd2envzf3zz__socketz00,
			BgL_bgl_za762socketza7d2loca2192z00);
		BGL_BIND_PROCEDURE(BGl_getzd2protocolzd2envz00zz__socketz00,
			BgL_bgl_za762getza7d2protoco2191z00);
		BGL_BIND_PROCEDURE(BGl_hostzd2envzd2zz__socketz00,
			BgL_bgl_za762hostza762za7za7__so2190z00);
		BGL_BIND_PROCEDURE(BGl_socketzd2acceptzd2envz00zz__socketz00,
			BgL_bgl__socketza7d2accept2189za7);
		BGL_BIND_PROCEDURE(BGl_socketzd2hostnamezd2envz00zz__socketz00,
			BgL_bgl_za762socketza7d2host2188z00);
		BGL_BIND_PROCEDURE(BGl_datagramzd2socketzd2inputzd2envzd2zz__socketz00,
			BgL_bgl_za762datagramza7d2so2187z00);
		BGL_BIND_PROCEDURE(BGl_socketzf3zd2envz21zz__socketz00,
			BgL_bgl_za762socketza7f3za791za72186z00);
		BGL_BIND_PROCEDURE(BGl_socketzd2hostzd2addresszd3zf3zd2envzf2zz__socketz00,
			BgL_bgl_za762socketza7d2host2185z00);
		BGL_BIND_PROCEDURE
			(BGl_datagramzd2socketzd2optionzd2setz12zd2envz12zz__socketz00,
			BgL_bgl_za762datagramza7d2so2184z00);
		BGL_BIND_PROCEDURE(BGl_resolvzd2envzd2zz__socketz00,
			BgL_bgl_za762resolvza762za7za7__2183z00);
		BGL_BIND_PROCEDURE(BGl_datagramzd2socketzd2outputzd2envzd2zz__socketz00,
			BgL_bgl_za762datagramza7d2so2182z00);
		BGL_BIND_PROCEDURE(BGl_socketzd2optionzd2setz12zd2envzc0zz__socketz00,
			BgL_bgl_za762socketza7d2opti2181z00);
		BGL_BIND_PROCEDURE(BGl_datagramzd2socketzd2serverzf3zd2envz21zz__socketz00,
			BgL_bgl_za762datagramza7d2so2180z00);
		BGL_BIND_STRING(BGl_string2099z00zz__socketz00,
			BgL_bgl_string2099za700za7za7_2179za7);
		BGL_BIND_STRING(BGl_string2098z00zz__socketz00,
			BgL_bgl_string2098za700za7za7_2178za7);
		BGL_BIND_STRING(BGl_string2097z00zz__socketz00,
			BgL_bgl_string2097za700za7za7_2177za7);
		BGL_BIND_STRING(BGl_string2096z00zz__socketz00,
			BgL_bgl_string2096za700za7za7_2176za7);
		BGL_BIND_STRING(BGl_string2095z00zz__socketz00,
			BgL_bgl_string2095za700za7za7_2175za7);
		BGL_BIND_STRING(BGl_string2094z00zz__socketz00,
			BgL_bgl_string2094za700za7za7_2174za7);
		BGL_BIND_STRING(BGl_string2093z00zz__socketz00,
			BgL_bgl_string2093za700za7za7_2173za7);
		BGL_BIND_STRING(BGl_string2092z00zz__socketz00,
			BgL_bgl_string2092za700za7za7_2172za7);
		BGL_BIND_STRING(BGl_string2091z00zz__socketz00,
			BgL_bgl_string2091za700za7za7_2171za7);
		BGL_BIND_STRING(BGl_string2090z00zz__socketz00,
			BgL_bgl_string2090za700za7za7_2170za7);
		BGL_BIND_PROCEDURE
			(BGl_makezd2datagramzd2unboundzd2socketzd2envz00zz__socketz00,
			BgL_bgl__makeza7d2datagram2169za7);
		BGL_BIND_PROCEDURE(BGl_datagramzd2socketzd2clientzf3zd2envz21zz__socketz00,
			BgL_bgl_za762datagramza7d2so2168z00);
		BGL_BIND_PROCEDURE
			(BGl_datagramzd2socketzd2portzd2numberzd2envz00zz__socketz00,
			BgL_bgl_za762datagramza7d2so2167z00);
		BGL_BIND_STRING(BGl_string2089z00zz__socketz00,
			BgL_bgl_string2089za700za7za7_2166za7);
		BGL_BIND_STRING(BGl_string2088z00zz__socketz00,
			BgL_bgl_string2088za700za7za7_2165za7);
		BGL_BIND_STRING(BGl_string2087z00zz__socketz00,
			BgL_bgl_string2087za700za7za7_2164za7);
		BGL_BIND_STRING(BGl_string2085z00zz__socketz00,
			BgL_bgl_string2085za700za7za7_2163za7);
		BGL_BIND_STRING(BGl_string2083z00zz__socketz00,
			BgL_bgl_string2083za700za7za7_2162za7);
		BGL_BIND_STRING(BGl_string2081z00zz__socketz00,
			BgL_bgl_string2081za700za7za7_2161za7);
		BGL_BIND_STRING(BGl_string2080z00zz__socketz00,
			BgL_bgl_string2080za700za7za7_2160za7);
		BGL_BIND_PROCEDURE(BGl_socketzd2localzd2addresszd2envzd2zz__socketz00,
			BgL_bgl_za762socketza7d2loca2159z00);
		BGL_BIND_STRING(BGl_string2079z00zz__socketz00,
			BgL_bgl_string2079za700za7za7_2158za7);
		BGL_BIND_PROCEDURE(BGl_socketzd2portzd2numberzd2envzd2zz__socketz00,
			BgL_bgl_za762socketza7d2port2157z00);
		BGL_BIND_STRING(BGl_string2077z00zz__socketz00,
			BgL_bgl_string2077za700za7za7_2156za7);
		BGL_BIND_PROCEDURE(BGl_z52socketzd2initz12zd2envz40zz__socketz00,
			BgL_bgl_za762za752socketza7d2i2155za7);
		BGL_BIND_STRING(BGl_string2075z00zz__socketz00,
			BgL_bgl_string2075za700za7za7_2154za7);
		BGL_BIND_STRING(BGl_string2072z00zz__socketz00,
			BgL_bgl_string2072za700za7za7_2153za7);
		BGL_BIND_STRING(BGl_string2071z00zz__socketz00,
			BgL_bgl_string2071za700za7za7_2152za7);
		BGL_BIND_STRING(BGl_string2070z00zz__socketz00,
			BgL_bgl_string2070za700za7za7_2151za7);
		BGL_BIND_PROCEDURE(BGl_proc2061z00zz__socketz00,
			BgL_bgl_za762za7c3za704anonymo2150za7);
		BGL_BIND_PROCEDURE(BGl_makezd2serverzd2socketzd2envzd2zz__socketz00,
			BgL_bgl_za762makeza7d2server2149z00);
		BGL_BIND_PROCEDURE(BGl_socketzd2shutdownzd2envz00zz__socketz00,
			BgL_bgl__socketza7d2shutdo2148za7);
		BGL_BIND_STRING(BGl_string2068z00zz__socketz00,
			BgL_bgl_string2068za700za7za7_2147za7);
		BGL_BIND_PROCEDURE(BGl_socketzd2optionzd2envz00zz__socketz00,
			BgL_bgl_za762socketza7d2opti2146z00);
		BGL_BIND_STRING(BGl_string2065z00zz__socketz00,
			BgL_bgl_string2065za700za7za7_2145za7);
		BGL_BIND_STRING(BGl_string2064z00zz__socketz00,
			BgL_bgl_string2064za700za7za7_2144za7);
		BGL_BIND_STRING(BGl_string2063z00zz__socketz00,
			BgL_bgl_string2063za700za7za7_2143za7);
		BGL_BIND_STRING(BGl_string2062z00zz__socketz00,
			BgL_bgl_string2062za700za7za7_2142za7);
		BGL_BIND_STRING(BGl_string2060z00zz__socketz00,
			BgL_bgl_string2060za700za7za7_2141za7);
		BGL_BIND_PROCEDURE(BGl_socketzd2acceptzd2manyzd2envzd2zz__socketz00,
			BgL_bgl__socketza7d2accept2140za7);
		BGL_BIND_PROCEDURE(BGl_makezd2clientzd2socketzd2envzd2zz__socketz00,
			BgL_bgl__makeza7d2clientza7d2139z00);
		BGL_BIND_STRING(BGl_string2059z00zz__socketz00,
			BgL_bgl_string2059za700za7za7_2138za7);
		BGL_BIND_STRING(BGl_string2058z00zz__socketz00,
			BgL_bgl_string2058za700za7za7_2137za7);
		BGL_BIND_PROCEDURE(BGl_datagramzd2socketzd2sendzd2envzd2zz__socketz00,
			BgL_bgl_za762datagramza7d2so2136z00);
		BGL_BIND_STRING(BGl_string2056z00zz__socketz00,
			BgL_bgl_string2056za700za7za7_2135za7);
		BGL_BIND_STRING(BGl_string2053z00zz__socketz00,
			BgL_bgl_string2053za700za7za7_2134za7);
		BGL_BIND_STRING(BGl_string2052z00zz__socketz00,
			BgL_bgl_string2052za700za7za7_2133za7);
		BGL_BIND_STRING(BGl_string2050z00zz__socketz00,
			BgL_bgl_string2050za700za7za7_2132za7);
		BGL_BIND_PROCEDURE(BGl_datagramzd2socketzd2receivezd2envzd2zz__socketz00,
			BgL_bgl_za762datagramza7d2so2131z00);
		BGL_BIND_PROCEDURE
			(BGl_makezd2datagramzd2serverzd2socketzd2envz00zz__socketz00,
			BgL_bgl__makeza7d2datagram2130za7);
		BGL_BIND_STRING(BGl_string2048z00zz__socketz00,
			BgL_bgl_string2048za700za7za7_2129za7);
		BGL_BIND_PROCEDURE
			(BGl_makezd2datagramzd2clientzd2socketzd2envz00zz__socketz00,
			BgL_bgl__makeza7d2datagram2128za7);
		BGL_BIND_STRING(BGl_string2047z00zz__socketz00,
			BgL_bgl_string2047za700za7za7_2127za7);
		BGL_BIND_PROCEDURE(BGl_socketzd2closezd2envz00zz__socketz00,
			BgL_bgl_za762socketza7d2clos2126z00);
		BGL_BIND_STRING(BGl_string2045z00zz__socketz00,
			BgL_bgl_string2045za700za7za7_2125za7);
		BGL_BIND_PROCEDURE(BGl_hostinfozd2envzd2zz__socketz00,
			BgL_bgl_za762hostinfoza762za7za72124z00);
		BGL_BIND_STRING(BGl_string2043z00zz__socketz00,
			BgL_bgl_string2043za700za7za7_2123za7);
		BGL_BIND_STRING(BGl_string2042z00zz__socketz00,
			BgL_bgl_string2042za700za7za7_2122za7);
		BGL_BIND_STRING(BGl_string2041z00zz__socketz00,
			BgL_bgl_string2041za700za7za7_2121za7);
		BGL_BIND_STRING(BGl_string2040z00zz__socketz00,
			BgL_bgl_string2040za700za7za7_2120za7);
	}

/* 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_keyword2055z00zz__socketz00));
		ADD_ROOT((void *) (&BGl_keyword2057z00zz__socketz00));
		ADD_ROOT((void *) (&BGl_requirezd2initializa7ationz75zz__socketz00));
		ADD_ROOT((void *) (&BGl_keyword2067z00zz__socketz00));
		ADD_ROOT((void *) (&BGl_symbol2027z00zz__socketz00));
		ADD_ROOT((void *) (&BGl_keyword2074z00zz__socketz00));
		ADD_ROOT((void *) (&BGl_keyword2076z00zz__socketz00));
		ADD_ROOT((void *) (&BGl_symbol2038z00zz__socketz00));
		ADD_ROOT((void *) (&BGl_symbol2044z00zz__socketz00));
		ADD_ROOT((void *) (&BGl_symbol2046z00zz__socketz00));
		ADD_ROOT((void *) (&BGl_symbol2049z00zz__socketz00));
		ADD_ROOT((void *) (&BGl_symbol2051z00zz__socketz00));
		ADD_ROOT((void *) (&BGl_list2029z00zz__socketz00));
		ADD_ROOT((void *) (&BGl_symbol2069z00zz__socketz00));
		ADD_ROOT((void *) (&BGl_symbol2078z00zz__socketz00));
		ADD_ROOT((void *) (&BGl_symbol2082z00zz__socketz00));
		ADD_ROOT((void *) (&BGl_symbol2084z00zz__socketz00));
		ADD_ROOT((void *) (&BGl_symbol2086z00zz__socketz00));
		ADD_ROOT((void *) (&BGl_list2054z00zz__socketz00));
		ADD_ROOT((void *) (&BGl_za2socketzd2mutexza2zd2zz__socketz00));
		ADD_ROOT((void *) (&BGl_list2066z00zz__socketz00));
		ADD_ROOT((void *) (&BGl_list2073z00zz__socketz00));
		ADD_ROOT((void *) (&BGl_keyword2030z00zz__socketz00));
		ADD_ROOT((void *) (&BGl_keyword2032z00zz__socketz00));
		ADD_ROOT((void *) (&BGl_keyword2034z00zz__socketz00));
		ADD_ROOT((void *) (&BGl_keyword2036z00zz__socketz00));
#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__socketz00(long
		BgL_checksumz00_2789, char *BgL_fromz00_2790)
	{
		{
			if (CBOOL(BGl_requirezd2initializa7ationz75zz__socketz00))
				{
					BGl_requirezd2initializa7ationz75zz__socketz00 = BBOOL(((bool_t) 0));
					bgl_constant_bindings();
					BGl_gczd2rootszd2initz00zz__socketz00();
					BGl_cnstzd2initzd2zz__socketz00();
					BGl_importedzd2moduleszd2initz00zz__socketz00();
					return BGl_toplevelzd2initzd2zz__socketz00();
				}
			else
				{
					return BUNSPEC;
				}
		}

	}



/* cnst-init */
	obj_t BGl_cnstzd2initzd2zz__socketz00(void)
	{
		{	/* Llib/socket.scm 14 */
			BGl_symbol2027z00zz__socketz00 =
				bstring_to_symbol(BGl_string2028z00zz__socketz00);
			BGl_keyword2030z00zz__socketz00 =
				bstring_to_keyword(BGl_string2031z00zz__socketz00);
			BGl_keyword2032z00zz__socketz00 =
				bstring_to_keyword(BGl_string2033z00zz__socketz00);
			BGl_keyword2034z00zz__socketz00 =
				bstring_to_keyword(BGl_string2035z00zz__socketz00);
			BGl_keyword2036z00zz__socketz00 =
				bstring_to_keyword(BGl_string2037z00zz__socketz00);
			BGl_list2029z00zz__socketz00 =
				MAKE_YOUNG_PAIR(BGl_keyword2030z00zz__socketz00,
				MAKE_YOUNG_PAIR(BGl_keyword2032z00zz__socketz00,
					MAKE_YOUNG_PAIR(BGl_keyword2034z00zz__socketz00,
						MAKE_YOUNG_PAIR(BGl_keyword2036z00zz__socketz00, BNIL))));
			BGl_symbol2038z00zz__socketz00 =
				bstring_to_symbol(BGl_string2039z00zz__socketz00);
			BGl_symbol2044z00zz__socketz00 =
				bstring_to_symbol(BGl_string2045z00zz__socketz00);
			BGl_symbol2046z00zz__socketz00 =
				bstring_to_symbol(BGl_string2047z00zz__socketz00);
			BGl_symbol2049z00zz__socketz00 =
				bstring_to_symbol(BGl_string2050z00zz__socketz00);
			BGl_symbol2051z00zz__socketz00 =
				bstring_to_symbol(BGl_string2052z00zz__socketz00);
			BGl_keyword2055z00zz__socketz00 =
				bstring_to_keyword(BGl_string2056z00zz__socketz00);
			BGl_keyword2057z00zz__socketz00 =
				bstring_to_keyword(BGl_string2058z00zz__socketz00);
			BGl_list2054z00zz__socketz00 =
				MAKE_YOUNG_PAIR(BGl_keyword2030z00zz__socketz00,
				MAKE_YOUNG_PAIR(BGl_keyword2055z00zz__socketz00,
					MAKE_YOUNG_PAIR(BGl_keyword2057z00zz__socketz00, BNIL)));
			BGl_keyword2067z00zz__socketz00 =
				bstring_to_keyword(BGl_string2068z00zz__socketz00);
			BGl_list2066z00zz__socketz00 =
				MAKE_YOUNG_PAIR(BGl_keyword2067z00zz__socketz00,
				MAKE_YOUNG_PAIR(BGl_keyword2032z00zz__socketz00,
					MAKE_YOUNG_PAIR(BGl_keyword2034z00zz__socketz00, BNIL)));
			BGl_symbol2069z00zz__socketz00 =
				bstring_to_symbol(BGl_string2070z00zz__socketz00);
			BGl_keyword2074z00zz__socketz00 =
				bstring_to_keyword(BGl_string2075z00zz__socketz00);
			BGl_keyword2076z00zz__socketz00 =
				bstring_to_keyword(BGl_string2077z00zz__socketz00);
			BGl_list2073z00zz__socketz00 =
				MAKE_YOUNG_PAIR(BGl_keyword2067z00zz__socketz00,
				MAKE_YOUNG_PAIR(BGl_keyword2074z00zz__socketz00,
					MAKE_YOUNG_PAIR(BGl_keyword2076z00zz__socketz00, BNIL)));
			BGl_symbol2078z00zz__socketz00 =
				bstring_to_symbol(BGl_string2079z00zz__socketz00);
			BGl_symbol2082z00zz__socketz00 =
				bstring_to_symbol(BGl_string2083z00zz__socketz00);
			BGl_symbol2084z00zz__socketz00 =
				bstring_to_symbol(BGl_string2085z00zz__socketz00);
			return (BGl_symbol2086z00zz__socketz00 =
				bstring_to_symbol(BGl_string2087z00zz__socketz00), BUNSPEC);
		}

	}



/* gc-roots-init */
	obj_t BGl_gczd2rootszd2initz00zz__socketz00(void)
	{
		{	/* Llib/socket.scm 14 */
			return bgl_gc_roots_register();
		}

	}



/* toplevel-init */
	obj_t BGl_toplevelzd2initzd2zz__socketz00(void)
	{
		{	/* Llib/socket.scm 14 */
			BGl_za2socketzd2initializa7edza2z75zz__socketz00 = ((bool_t) 0);
			return (BGl_za2socketzd2mutexza2zd2zz__socketz00 =
				bgl_make_mutex(BGl_string2012z00zz__socketz00), BUNSPEC);
		}

	}



/* %socket-init! */
	BGL_EXPORTED_DEF obj_t BGl_z52socketzd2initz12z92zz__socketz00(void)
	{
		{	/* Llib/socket.scm 286 */
			{	/* Llib/socket.scm 287 */
				obj_t BgL_top2250z00_2835;

				BgL_top2250z00_2835 = BGL_EXITD_TOP_AS_OBJ();
				BGL_MUTEX_LOCK(BGl_za2socketzd2mutexza2zd2zz__socketz00);
				BGL_EXITD_PUSH_PROTECT(BgL_top2250z00_2835,
					BGl_za2socketzd2mutexza2zd2zz__socketz00);
				BUNSPEC;
				{	/* Llib/socket.scm 287 */
					obj_t BgL_tmp2249z00_2834;

					if (BGl_za2socketzd2initializa7edza2z75zz__socketz00)
						{	/* Llib/socket.scm 288 */
							BgL_tmp2249z00_2834 = BFALSE;
						}
					else
						{	/* Llib/socket.scm 288 */
							BGl_za2socketzd2initializa7edza2z75zz__socketz00 = ((bool_t) 1);
							socket_startup();
							BUNSPEC;
							BGl_registerzd2exitzd2functionz12z12zz__biglooz00
								(BGl_proc2013z00zz__socketz00);
							BgL_tmp2249z00_2834 = BUNSPEC;
						}
					BGL_EXITD_POP_PROTECT(BgL_top2250z00_2835);
					BUNSPEC;
					BGL_MUTEX_UNLOCK(BGl_za2socketzd2mutexza2zd2zz__socketz00);
					return BgL_tmp2249z00_2834;
				}
			}
		}

	}



/* &%socket-init! */
	obj_t BGl_z62z52socketzd2initz12zf0zz__socketz00(obj_t BgL_envz00_2393)
	{
		{	/* Llib/socket.scm 286 */
			return BGl_z52socketzd2initz12z92zz__socketz00();
		}

	}



/* &<@anonymous:1249> */
	obj_t BGl_z62zc3z04anonymousza31249ze3ze5zz__socketz00(obj_t BgL_envz00_2394,
		obj_t BgL_xz00_2395)
	{
		{	/* Llib/socket.scm 292 */
			socket_cleanup();
			BUNSPEC;
			return BgL_xz00_2395;
		}

	}



/* socket? */
	BGL_EXPORTED_DEF bool_t BGl_socketzf3zf3zz__socketz00(obj_t BgL_objz00_3)
	{
		{	/* Llib/socket.scm 302 */
			return SOCKETP(BgL_objz00_3);
		}

	}



/* &socket? */
	obj_t BGl_z62socketzf3z91zz__socketz00(obj_t BgL_envz00_2396,
		obj_t BgL_objz00_2397)
	{
		{	/* Llib/socket.scm 302 */
			return BBOOL(BGl_socketzf3zf3zz__socketz00(BgL_objz00_2397));
		}

	}



/* socket-server? */
	BGL_EXPORTED_DEF bool_t BGl_socketzd2serverzf3z21zz__socketz00(obj_t
		BgL_objz00_4)
	{
		{	/* Llib/socket.scm 308 */
			return BGL_SOCKET_SERVERP(BgL_objz00_4);
		}

	}



/* &socket-server? */
	obj_t BGl_z62socketzd2serverzf3z43zz__socketz00(obj_t BgL_envz00_2398,
		obj_t BgL_objz00_2399)
	{
		{	/* Llib/socket.scm 308 */
			return BBOOL(BGl_socketzd2serverzf3z21zz__socketz00(BgL_objz00_2399));
		}

	}



/* socket-client? */
	BGL_EXPORTED_DEF bool_t BGl_socketzd2clientzf3z21zz__socketz00(obj_t
		BgL_objz00_5)
	{
		{	/* Llib/socket.scm 314 */
			return BGL_SOCKET_CLIENTP(BgL_objz00_5);
		}

	}



/* &socket-client? */
	obj_t BGl_z62socketzd2clientzf3z43zz__socketz00(obj_t BgL_envz00_2400,
		obj_t BgL_objz00_2401)
	{
		{	/* Llib/socket.scm 314 */
			return BBOOL(BGl_socketzd2clientzf3z21zz__socketz00(BgL_objz00_2401));
		}

	}



/* socket-hostname */
	BGL_EXPORTED_DEF obj_t BGl_socketzd2hostnamezd2zz__socketz00(obj_t
		BgL_socketz00_6)
	{
		{	/* Llib/socket.scm 320 */
			return SOCKET_HOSTNAME(BgL_socketz00_6);
		}

	}



/* &socket-hostname */
	obj_t BGl_z62socketzd2hostnamezb0zz__socketz00(obj_t BgL_envz00_2402,
		obj_t BgL_socketz00_2403)
	{
		{	/* Llib/socket.scm 320 */
			{	/* Llib/socket.scm 321 */
				obj_t BgL_auxz00_2856;

				if (SOCKETP(BgL_socketz00_2403))
					{	/* Llib/socket.scm 321 */
						BgL_auxz00_2856 = BgL_socketz00_2403;
					}
				else
					{
						obj_t BgL_auxz00_2859;

						BgL_auxz00_2859 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2014z00zz__socketz00,
							BINT(14228L), BGl_string2015z00zz__socketz00,
							BGl_string2012z00zz__socketz00, BgL_socketz00_2403);
						FAILURE(BgL_auxz00_2859, BFALSE, BFALSE);
					}
				return BGl_socketzd2hostnamezd2zz__socketz00(BgL_auxz00_2856);
			}
		}

	}



/* socket-host-address */
	BGL_EXPORTED_DEF obj_t BGl_socketzd2hostzd2addressz00zz__socketz00(obj_t
		BgL_socketz00_7)
	{
		{	/* Llib/socket.scm 326 */
			BGL_TAIL return bgl_socket_host_addr(BgL_socketz00_7);
		}

	}



/* &socket-host-address */
	obj_t BGl_z62socketzd2hostzd2addressz62zz__socketz00(obj_t BgL_envz00_2404,
		obj_t BgL_socketz00_2405)
	{
		{	/* Llib/socket.scm 326 */
			{	/* Llib/socket.scm 327 */
				obj_t BgL_auxz00_2865;

				if (SOCKETP(BgL_socketz00_2405))
					{	/* Llib/socket.scm 327 */
						BgL_auxz00_2865 = BgL_socketz00_2405;
					}
				else
					{
						obj_t BgL_auxz00_2868;

						BgL_auxz00_2868 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2014z00zz__socketz00,
							BINT(14526L), BGl_string2016z00zz__socketz00,
							BGl_string2012z00zz__socketz00, BgL_socketz00_2405);
						FAILURE(BgL_auxz00_2868, BFALSE, BFALSE);
					}
				return BGl_socketzd2hostzd2addressz00zz__socketz00(BgL_auxz00_2865);
			}
		}

	}



/* socket-local-address */
	BGL_EXPORTED_DEF obj_t BGl_socketzd2localzd2addressz00zz__socketz00(obj_t
		BgL_socketz00_8)
	{
		{	/* Llib/socket.scm 332 */
			BGL_TAIL return bgl_socket_local_addr(BgL_socketz00_8);
		}

	}



/* &socket-local-address */
	obj_t BGl_z62socketzd2localzd2addressz62zz__socketz00(obj_t BgL_envz00_2406,
		obj_t BgL_socketz00_2407)
	{
		{	/* Llib/socket.scm 332 */
			{	/* Llib/socket.scm 333 */
				obj_t BgL_auxz00_2874;

				if (SOCKETP(BgL_socketz00_2407))
					{	/* Llib/socket.scm 333 */
						BgL_auxz00_2874 = BgL_socketz00_2407;
					}
				else
					{
						obj_t BgL_auxz00_2877;

						BgL_auxz00_2877 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2014z00zz__socketz00,
							BINT(14833L), BGl_string2017z00zz__socketz00,
							BGl_string2012z00zz__socketz00, BgL_socketz00_2407);
						FAILURE(BgL_auxz00_2877, BFALSE, BFALSE);
					}
				return BGl_socketzd2localzd2addressz00zz__socketz00(BgL_auxz00_2874);
			}
		}

	}



/* socket-local? */
	BGL_EXPORTED_DEF bool_t BGl_socketzd2localzf3z21zz__socketz00(obj_t
		BgL_socketz00_9)
	{
		{	/* Llib/socket.scm 338 */
			BGL_TAIL return bgl_socket_localp(BgL_socketz00_9);
		}

	}



/* &socket-local? */
	obj_t BGl_z62socketzd2localzf3z43zz__socketz00(obj_t BgL_envz00_2408,
		obj_t BgL_socketz00_2409)
	{
		{	/* Llib/socket.scm 338 */
			{	/* Llib/socket.scm 341 */
				bool_t BgL_tmpz00_2883;

				{	/* Llib/socket.scm 341 */
					obj_t BgL_auxz00_2884;

					if (SOCKETP(BgL_socketz00_2409))
						{	/* Llib/socket.scm 341 */
							BgL_auxz00_2884 = BgL_socketz00_2409;
						}
					else
						{
							obj_t BgL_auxz00_2887;

							BgL_auxz00_2887 =
								BGl_typezd2errorzd2zz__errorz00(BGl_string2014z00zz__socketz00,
								BINT(15170L), BGl_string2018z00zz__socketz00,
								BGl_string2012z00zz__socketz00, BgL_socketz00_2409);
							FAILURE(BgL_auxz00_2887, BFALSE, BFALSE);
						}
					BgL_tmpz00_2883 =
						BGl_socketzd2localzf3z21zz__socketz00(BgL_auxz00_2884);
				}
				return BBOOL(BgL_tmpz00_2883);
			}
		}

	}



/* socket-host-address=? */
	BGL_EXPORTED_DEF bool_t
		BGl_socketzd2hostzd2addresszd3zf3z20zz__socketz00(obj_t BgL_socketz00_10,
		obj_t BgL_addrz00_11)
	{
		{	/* Llib/socket.scm 348 */
			BGL_TAIL return
				bgl_socket_host_addr_cmp(BgL_socketz00_10, BgL_addrz00_11);
		}

	}



/* &socket-host-address=? */
	obj_t BGl_z62socketzd2hostzd2addresszd3zf3z42zz__socketz00(obj_t
		BgL_envz00_2410, obj_t BgL_socketz00_2411, obj_t BgL_addrz00_2412)
	{
		{	/* Llib/socket.scm 348 */
			{	/* Llib/socket.scm 351 */
				bool_t BgL_tmpz00_2894;

				{	/* Llib/socket.scm 351 */
					obj_t BgL_auxz00_2902;
					obj_t BgL_auxz00_2895;

					if (STRINGP(BgL_addrz00_2412))
						{	/* Llib/socket.scm 351 */
							BgL_auxz00_2902 = BgL_addrz00_2412;
						}
					else
						{
							obj_t BgL_auxz00_2905;

							BgL_auxz00_2905 =
								BGl_typezd2errorzd2zz__errorz00(BGl_string2014z00zz__socketz00,
								BINT(15624L), BGl_string2019z00zz__socketz00,
								BGl_string2020z00zz__socketz00, BgL_addrz00_2412);
							FAILURE(BgL_auxz00_2905, BFALSE, BFALSE);
						}
					if (SOCKETP(BgL_socketz00_2411))
						{	/* Llib/socket.scm 351 */
							BgL_auxz00_2895 = BgL_socketz00_2411;
						}
					else
						{
							obj_t BgL_auxz00_2898;

							BgL_auxz00_2898 =
								BGl_typezd2errorzd2zz__errorz00(BGl_string2014z00zz__socketz00,
								BINT(15624L), BGl_string2019z00zz__socketz00,
								BGl_string2012z00zz__socketz00, BgL_socketz00_2411);
							FAILURE(BgL_auxz00_2898, BFALSE, BFALSE);
						}
					BgL_tmpz00_2894 =
						BGl_socketzd2hostzd2addresszd3zf3z20zz__socketz00(BgL_auxz00_2895,
						BgL_auxz00_2902);
				}
				return BBOOL(BgL_tmpz00_2894);
			}
		}

	}



/* socket-down? */
	BGL_EXPORTED_DEF bool_t BGl_socketzd2downzf3z21zz__socketz00(obj_t
		BgL_socketz00_12)
	{
		{	/* Llib/socket.scm 358 */
			return SOCKET_DOWNP(BgL_socketz00_12);
		}

	}



/* &socket-down? */
	obj_t BGl_z62socketzd2downzf3z43zz__socketz00(obj_t BgL_envz00_2413,
		obj_t BgL_socketz00_2414)
	{
		{	/* Llib/socket.scm 358 */
			{	/* Llib/socket.scm 359 */
				bool_t BgL_tmpz00_2912;

				{	/* Llib/socket.scm 359 */
					obj_t BgL_auxz00_2913;

					if (SOCKETP(BgL_socketz00_2414))
						{	/* Llib/socket.scm 359 */
							BgL_auxz00_2913 = BgL_socketz00_2414;
						}
					else
						{
							obj_t BgL_auxz00_2916;

							BgL_auxz00_2916 =
								BGl_typezd2errorzd2zz__errorz00(BGl_string2014z00zz__socketz00,
								BINT(16009L), BGl_string2021z00zz__socketz00,
								BGl_string2012z00zz__socketz00, BgL_socketz00_2414);
							FAILURE(BgL_auxz00_2916, BFALSE, BFALSE);
						}
					BgL_tmpz00_2912 =
						BGl_socketzd2downzf3z21zz__socketz00(BgL_auxz00_2913);
				}
				return BBOOL(BgL_tmpz00_2912);
			}
		}

	}



/* socket-port-number */
	BGL_EXPORTED_DEF obj_t BGl_socketzd2portzd2numberz00zz__socketz00(obj_t
		BgL_socketz00_13)
	{
		{	/* Llib/socket.scm 364 */
			return BINT(SOCKET_PORT(BgL_socketz00_13));
		}

	}



/* &socket-port-number */
	obj_t BGl_z62socketzd2portzd2numberz62zz__socketz00(obj_t BgL_envz00_2415,
		obj_t BgL_socketz00_2416)
	{
		{	/* Llib/socket.scm 364 */
			{	/* Llib/socket.scm 365 */
				obj_t BgL_auxz00_2924;

				if (SOCKETP(BgL_socketz00_2416))
					{	/* Llib/socket.scm 365 */
						BgL_auxz00_2924 = BgL_socketz00_2416;
					}
				else
					{
						obj_t BgL_auxz00_2927;

						BgL_auxz00_2927 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2014z00zz__socketz00,
							BINT(16317L), BGl_string2022z00zz__socketz00,
							BGl_string2012z00zz__socketz00, BgL_socketz00_2416);
						FAILURE(BgL_auxz00_2927, BFALSE, BFALSE);
					}
				return BGl_socketzd2portzd2numberz00zz__socketz00(BgL_auxz00_2924);
			}
		}

	}



/* socket-input */
	BGL_EXPORTED_DEF obj_t BGl_socketzd2inputzd2zz__socketz00(obj_t
		BgL_socketz00_14)
	{
		{	/* Llib/socket.scm 370 */
			return SOCKET_INPUT(BgL_socketz00_14);
		}

	}



/* &socket-input */
	obj_t BGl_z62socketzd2inputzb0zz__socketz00(obj_t BgL_envz00_2417,
		obj_t BgL_socketz00_2418)
	{
		{	/* Llib/socket.scm 370 */
			{	/* Llib/socket.scm 371 */
				obj_t BgL_auxz00_2933;

				if (SOCKETP(BgL_socketz00_2418))
					{	/* Llib/socket.scm 371 */
						BgL_auxz00_2933 = BgL_socketz00_2418;
					}
				else
					{
						obj_t BgL_auxz00_2936;

						BgL_auxz00_2936 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2014z00zz__socketz00,
							BINT(16619L), BGl_string2023z00zz__socketz00,
							BGl_string2012z00zz__socketz00, BgL_socketz00_2418);
						FAILURE(BgL_auxz00_2936, BFALSE, BFALSE);
					}
				return BGl_socketzd2inputzd2zz__socketz00(BgL_auxz00_2933);
			}
		}

	}



/* socket-output */
	BGL_EXPORTED_DEF obj_t BGl_socketzd2outputzd2zz__socketz00(obj_t
		BgL_socketz00_15)
	{
		{	/* Llib/socket.scm 376 */
			return SOCKET_OUTPUT(BgL_socketz00_15);
		}

	}



/* &socket-output */
	obj_t BGl_z62socketzd2outputzb0zz__socketz00(obj_t BgL_envz00_2419,
		obj_t BgL_socketz00_2420)
	{
		{	/* Llib/socket.scm 376 */
			{	/* Llib/socket.scm 377 */
				obj_t BgL_auxz00_2942;

				if (SOCKETP(BgL_socketz00_2420))
					{	/* Llib/socket.scm 377 */
						BgL_auxz00_2942 = BgL_socketz00_2420;
					}
				else
					{
						obj_t BgL_auxz00_2945;

						BgL_auxz00_2945 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2014z00zz__socketz00,
							BINT(16916L), BGl_string2024z00zz__socketz00,
							BGl_string2012z00zz__socketz00, BgL_socketz00_2420);
						FAILURE(BgL_auxz00_2945, BFALSE, BFALSE);
					}
				return BGl_socketzd2outputzd2zz__socketz00(BgL_auxz00_2942);
			}
		}

	}



/* _make-client-socket */
	obj_t BGl__makezd2clientzd2socketz00zz__socketz00(obj_t BgL_env1115z00_23,
		obj_t BgL_opt1114z00_22)
	{
		{	/* Llib/socket.scm 382 */
			{	/* Llib/socket.scm 382 */
				long BgL_l1116z00_1205;

				{	/* Llib/socket.scm 382 */
					obj_t BgL_vectorz00_1853;

					if (VECTORP(BgL_opt1114z00_22))
						{	/* Llib/socket.scm 382 */
							BgL_vectorz00_1853 = BgL_opt1114z00_22;
						}
					else
						{
							obj_t BgL_auxz00_2952;

							BgL_auxz00_2952 =
								BGl_typezd2errorzd2zz__errorz00(BGl_string2014z00zz__socketz00,
								BINT(17165L), BGl_string2025z00zz__socketz00,
								BGl_string2026z00zz__socketz00, BgL_opt1114z00_22);
							FAILURE(BgL_auxz00_2952, BFALSE, BFALSE);
						}
					BgL_l1116z00_1205 = VECTOR_LENGTH(BgL_vectorz00_1853);
				}
				{	/* Llib/socket.scm 382 */
					obj_t BgL_g1124z00_1209;
					obj_t BgL_g1125z00_1210;

					{
						obj_t BgL_auxz00_2957;

						if (VECTORP(BgL_opt1114z00_22))
							{	/* Llib/socket.scm 382 */
								BgL_auxz00_2957 = BgL_opt1114z00_22;
							}
						else
							{
								obj_t BgL_auxz00_2960;

								BgL_auxz00_2960 =
									BGl_typezd2errorzd2zz__errorz00
									(BGl_string2014z00zz__socketz00, BINT(17165L),
									BGl_string2025z00zz__socketz00,
									BGl_string2026z00zz__socketz00, BgL_opt1114z00_22);
								FAILURE(BgL_auxz00_2960, BFALSE, BFALSE);
							}
						BgL_g1124z00_1209 = VECTOR_REF(BgL_auxz00_2957, 0L);
					}
					{
						obj_t BgL_auxz00_2965;

						if (VECTORP(BgL_opt1114z00_22))
							{	/* Llib/socket.scm 382 */
								BgL_auxz00_2965 = BgL_opt1114z00_22;
							}
						else
							{
								obj_t BgL_auxz00_2968;

								BgL_auxz00_2968 =
									BGl_typezd2errorzd2zz__errorz00
									(BGl_string2014z00zz__socketz00, BINT(17165L),
									BGl_string2025z00zz__socketz00,
									BGl_string2026z00zz__socketz00, BgL_opt1114z00_22);
								FAILURE(BgL_auxz00_2968, BFALSE, BFALSE);
							}
						BgL_g1125z00_1210 = VECTOR_REF(BgL_auxz00_2965, 1L);
					}
					{	/* Llib/socket.scm 382 */
						obj_t BgL_domainz00_1211;

						BgL_domainz00_1211 = BGl_symbol2027z00zz__socketz00;
						{	/* Llib/socket.scm 382 */
							obj_t BgL_inbufz00_1212;

							BgL_inbufz00_1212 = BTRUE;
							{	/* Llib/socket.scm 382 */
								obj_t BgL_outbufz00_1213;

								BgL_outbufz00_1213 = BTRUE;
								{	/* Llib/socket.scm 382 */
									obj_t BgL_timeoutz00_1214;

									BgL_timeoutz00_1214 = BINT(0L);
									{	/* Llib/socket.scm 382 */

										{
											long BgL_iz00_1215;

											BgL_iz00_1215 = 2L;
										BgL_check1118z00_1216:
											if ((BgL_iz00_1215 == BgL_l1116z00_1205))
												{	/* Llib/socket.scm 382 */
													BNIL;
												}
											else
												{	/* Llib/socket.scm 382 */
													bool_t BgL_test2266z00_2976;

													{	/* Llib/socket.scm 382 */
														obj_t BgL_arg1259z00_1222;

														BgL_arg1259z00_1222 =
															VECTOR_REF(
															((obj_t) BgL_opt1114z00_22), BgL_iz00_1215);
														BgL_test2266z00_2976 =
															CBOOL(BGl_memqz00zz__r4_pairs_and_lists_6_3z00
															(BgL_arg1259z00_1222,
																BGl_list2029z00zz__socketz00));
													}
													if (BgL_test2266z00_2976)
														{
															long BgL_iz00_2981;

															BgL_iz00_2981 = (BgL_iz00_1215 + 2L);
															BgL_iz00_1215 = BgL_iz00_2981;
															goto BgL_check1118z00_1216;
														}
													else
														{	/* Llib/socket.scm 382 */
															obj_t BgL_arg1258z00_1221;

															BgL_arg1258z00_1221 =
																VECTOR_REF(
																((obj_t) BgL_opt1114z00_22), BgL_iz00_1215);
															BGl_errorz00zz__errorz00
																(BGl_symbol2038z00zz__socketz00,
																BGl_string2040z00zz__socketz00,
																BgL_arg1258z00_1221);
														}
												}
										}
										{	/* Llib/socket.scm 382 */
											obj_t BgL_index1120z00_1223;

											{
												long BgL_iz00_1869;

												BgL_iz00_1869 = 2L;
											BgL_search1117z00_1868:
												if ((BgL_iz00_1869 == BgL_l1116z00_1205))
													{	/* Llib/socket.scm 382 */
														BgL_index1120z00_1223 = BINT((-1L));
													}
												else
													{	/* Llib/socket.scm 382 */
														if ((BgL_iz00_1869 == (BgL_l1116z00_1205 - 1L)))
															{	/* Llib/socket.scm 382 */
																BgL_index1120z00_1223 =
																	BGl_errorz00zz__errorz00
																	(BGl_symbol2038z00zz__socketz00,
																	BGl_string2041z00zz__socketz00,
																	BINT(VECTOR_LENGTH(BgL_opt1114z00_22)));
															}
														else
															{	/* Llib/socket.scm 382 */
																obj_t BgL_vz00_1879;

																BgL_vz00_1879 =
																	VECTOR_REF(BgL_opt1114z00_22, BgL_iz00_1869);
																if (
																	(BgL_vz00_1879 ==
																		BGl_keyword2030z00zz__socketz00))
																	{	/* Llib/socket.scm 382 */
																		BgL_index1120z00_1223 =
																			BINT((BgL_iz00_1869 + 1L));
																	}
																else
																	{
																		long BgL_iz00_3000;

																		BgL_iz00_3000 = (BgL_iz00_1869 + 2L);
																		BgL_iz00_1869 = BgL_iz00_3000;
																		goto BgL_search1117z00_1868;
																	}
															}
													}
											}
											{	/* Llib/socket.scm 382 */
												bool_t BgL_test2270z00_3002;

												{	/* Llib/socket.scm 382 */
													long BgL_n1z00_1883;

													{	/* Llib/socket.scm 382 */
														obj_t BgL_tmpz00_3003;

														if (INTEGERP(BgL_index1120z00_1223))
															{	/* Llib/socket.scm 382 */
																BgL_tmpz00_3003 = BgL_index1120z00_1223;
															}
														else
															{
																obj_t BgL_auxz00_3006;

																BgL_auxz00_3006 =
																	BGl_typezd2errorzd2zz__errorz00
																	(BGl_string2014z00zz__socketz00, BINT(17165L),
																	BGl_string2025z00zz__socketz00,
																	BGl_string2042z00zz__socketz00,
																	BgL_index1120z00_1223);
																FAILURE(BgL_auxz00_3006, BFALSE, BFALSE);
															}
														BgL_n1z00_1883 = (long) CINT(BgL_tmpz00_3003);
													}
													BgL_test2270z00_3002 = (BgL_n1z00_1883 >= 0L);
												}
												if (BgL_test2270z00_3002)
													{
														long BgL_auxz00_3019;
														obj_t BgL_auxz00_3012;

														{	/* Llib/socket.scm 382 */
															obj_t BgL_tmpz00_3020;

															if (INTEGERP(BgL_index1120z00_1223))
																{	/* Llib/socket.scm 382 */
																	BgL_tmpz00_3020 = BgL_index1120z00_1223;
																}
															else
																{
																	obj_t BgL_auxz00_3023;

																	BgL_auxz00_3023 =
																		BGl_typezd2errorzd2zz__errorz00
																		(BGl_string2014z00zz__socketz00,
																		BINT(17165L),
																		BGl_string2025z00zz__socketz00,
																		BGl_string2042z00zz__socketz00,
																		BgL_index1120z00_1223);
																	FAILURE(BgL_auxz00_3023, BFALSE, BFALSE);
																}
															BgL_auxz00_3019 = (long) CINT(BgL_tmpz00_3020);
														}
														if (VECTORP(BgL_opt1114z00_22))
															{	/* Llib/socket.scm 382 */
																BgL_auxz00_3012 = BgL_opt1114z00_22;
															}
														else
															{
																obj_t BgL_auxz00_3015;

																BgL_auxz00_3015 =
																	BGl_typezd2errorzd2zz__errorz00
																	(BGl_string2014z00zz__socketz00, BINT(17165L),
																	BGl_string2025z00zz__socketz00,
																	BGl_string2026z00zz__socketz00,
																	BgL_opt1114z00_22);
																FAILURE(BgL_auxz00_3015, BFALSE, BFALSE);
															}
														BgL_domainz00_1211 =
															VECTOR_REF(BgL_auxz00_3012, BgL_auxz00_3019);
													}
												else
													{	/* Llib/socket.scm 382 */
														BFALSE;
													}
											}
										}
										{	/* Llib/socket.scm 382 */
											obj_t BgL_index1121z00_1225;

											{
												long BgL_iz00_1885;

												BgL_iz00_1885 = 2L;
											BgL_search1117z00_1884:
												if ((BgL_iz00_1885 == BgL_l1116z00_1205))
													{	/* Llib/socket.scm 382 */
														BgL_index1121z00_1225 = BINT((-1L));
													}
												else
													{	/* Llib/socket.scm 382 */
														if ((BgL_iz00_1885 == (BgL_l1116z00_1205 - 1L)))
															{	/* Llib/socket.scm 382 */
																BgL_index1121z00_1225 =
																	BGl_errorz00zz__errorz00
																	(BGl_symbol2038z00zz__socketz00,
																	BGl_string2041z00zz__socketz00,
																	BINT(VECTOR_LENGTH(BgL_opt1114z00_22)));
															}
														else
															{	/* Llib/socket.scm 382 */
																obj_t BgL_vz00_1895;

																BgL_vz00_1895 =
																	VECTOR_REF(BgL_opt1114z00_22, BgL_iz00_1885);
																if (
																	(BgL_vz00_1895 ==
																		BGl_keyword2032z00zz__socketz00))
																	{	/* Llib/socket.scm 382 */
																		BgL_index1121z00_1225 =
																			BINT((BgL_iz00_1885 + 1L));
																	}
																else
																	{
																		long BgL_iz00_3043;

																		BgL_iz00_3043 = (BgL_iz00_1885 + 2L);
																		BgL_iz00_1885 = BgL_iz00_3043;
																		goto BgL_search1117z00_1884;
																	}
															}
													}
											}
											{	/* Llib/socket.scm 382 */
												bool_t BgL_test2277z00_3045;

												{	/* Llib/socket.scm 382 */
													long BgL_n1z00_1899;

													{	/* Llib/socket.scm 382 */
														obj_t BgL_tmpz00_3046;

														if (INTEGERP(BgL_index1121z00_1225))
															{	/* Llib/socket.scm 382 */
																BgL_tmpz00_3046 = BgL_index1121z00_1225;
															}
														else
															{
																obj_t BgL_auxz00_3049;

																BgL_auxz00_3049 =
																	BGl_typezd2errorzd2zz__errorz00
																	(BGl_string2014z00zz__socketz00, BINT(17165L),
																	BGl_string2025z00zz__socketz00,
																	BGl_string2042z00zz__socketz00,
																	BgL_index1121z00_1225);
																FAILURE(BgL_auxz00_3049, BFALSE, BFALSE);
															}
														BgL_n1z00_1899 = (long) CINT(BgL_tmpz00_3046);
													}
													BgL_test2277z00_3045 = (BgL_n1z00_1899 >= 0L);
												}
												if (BgL_test2277z00_3045)
													{
														long BgL_auxz00_3062;
														obj_t BgL_auxz00_3055;

														{	/* Llib/socket.scm 382 */
															obj_t BgL_tmpz00_3063;

															if (INTEGERP(BgL_index1121z00_1225))
																{	/* Llib/socket.scm 382 */
																	BgL_tmpz00_3063 = BgL_index1121z00_1225;
																}
															else
																{
																	obj_t BgL_auxz00_3066;

																	BgL_auxz00_3066 =
																		BGl_typezd2errorzd2zz__errorz00
																		(BGl_string2014z00zz__socketz00,
																		BINT(17165L),
																		BGl_string2025z00zz__socketz00,
																		BGl_string2042z00zz__socketz00,
																		BgL_index1121z00_1225);
																	FAILURE(BgL_auxz00_3066, BFALSE, BFALSE);
																}
															BgL_auxz00_3062 = (long) CINT(BgL_tmpz00_3063);
														}
														if (VECTORP(BgL_opt1114z00_22))
															{	/* Llib/socket.scm 382 */
																BgL_auxz00_3055 = BgL_opt1114z00_22;
															}
														else
															{
																obj_t BgL_auxz00_3058;

																BgL_auxz00_3058 =
																	BGl_typezd2errorzd2zz__errorz00
																	(BGl_string2014z00zz__socketz00, BINT(17165L),
																	BGl_string2025z00zz__socketz00,
																	BGl_string2026z00zz__socketz00,
																	BgL_opt1114z00_22);
																FAILURE(BgL_auxz00_3058, BFALSE, BFALSE);
															}
														BgL_inbufz00_1212 =
															VECTOR_REF(BgL_auxz00_3055, BgL_auxz00_3062);
													}
												else
													{	/* Llib/socket.scm 382 */
														BFALSE;
													}
											}
										}
										{	/* Llib/socket.scm 382 */
											obj_t BgL_index1122z00_1227;

											{
												long BgL_iz00_1901;

												BgL_iz00_1901 = 2L;
											BgL_search1117z00_1900:
												if ((BgL_iz00_1901 == BgL_l1116z00_1205))
													{	/* Llib/socket.scm 382 */
														BgL_index1122z00_1227 = BINT((-1L));
													}
												else
													{	/* Llib/socket.scm 382 */
														if ((BgL_iz00_1901 == (BgL_l1116z00_1205 - 1L)))
															{	/* Llib/socket.scm 382 */
																BgL_index1122z00_1227 =
																	BGl_errorz00zz__errorz00
																	(BGl_symbol2038z00zz__socketz00,
																	BGl_string2041z00zz__socketz00,
																	BINT(VECTOR_LENGTH(BgL_opt1114z00_22)));
															}
														else
															{	/* Llib/socket.scm 382 */
																obj_t BgL_vz00_1911;

																BgL_vz00_1911 =
																	VECTOR_REF(BgL_opt1114z00_22, BgL_iz00_1901);
																if (
																	(BgL_vz00_1911 ==
																		BGl_keyword2034z00zz__socketz00))
																	{	/* Llib/socket.scm 382 */
																		BgL_index1122z00_1227 =
																			BINT((BgL_iz00_1901 + 1L));
																	}
																else
																	{
																		long BgL_iz00_3086;

																		BgL_iz00_3086 = (BgL_iz00_1901 + 2L);
																		BgL_iz00_1901 = BgL_iz00_3086;
																		goto BgL_search1117z00_1900;
																	}
															}
													}
											}
											{	/* Llib/socket.scm 382 */
												bool_t BgL_test2284z00_3088;

												{	/* Llib/socket.scm 382 */
													long BgL_n1z00_1915;

													{	/* Llib/socket.scm 382 */
														obj_t BgL_tmpz00_3089;

														if (INTEGERP(BgL_index1122z00_1227))
															{	/* Llib/socket.scm 382 */
																BgL_tmpz00_3089 = BgL_index1122z00_1227;
															}
														else
															{
																obj_t BgL_auxz00_3092;

																BgL_auxz00_3092 =
																	BGl_typezd2errorzd2zz__errorz00
																	(BGl_string2014z00zz__socketz00, BINT(17165L),
																	BGl_string2025z00zz__socketz00,
																	BGl_string2042z00zz__socketz00,
																	BgL_index1122z00_1227);
																FAILURE(BgL_auxz00_3092, BFALSE, BFALSE);
															}
														BgL_n1z00_1915 = (long) CINT(BgL_tmpz00_3089);
													}
													BgL_test2284z00_3088 = (BgL_n1z00_1915 >= 0L);
												}
												if (BgL_test2284z00_3088)
													{
														long BgL_auxz00_3105;
														obj_t BgL_auxz00_3098;

														{	/* Llib/socket.scm 382 */
															obj_t BgL_tmpz00_3106;

															if (INTEGERP(BgL_index1122z00_1227))
																{	/* Llib/socket.scm 382 */
																	BgL_tmpz00_3106 = BgL_index1122z00_1227;
																}
															else
																{
																	obj_t BgL_auxz00_3109;

																	BgL_auxz00_3109 =
																		BGl_typezd2errorzd2zz__errorz00
																		(BGl_string2014z00zz__socketz00,
																		BINT(17165L),
																		BGl_string2025z00zz__socketz00,
																		BGl_string2042z00zz__socketz00,
																		BgL_index1122z00_1227);
																	FAILURE(BgL_auxz00_3109, BFALSE, BFALSE);
																}
															BgL_auxz00_3105 = (long) CINT(BgL_tmpz00_3106);
														}
														if (VECTORP(BgL_opt1114z00_22))
															{	/* Llib/socket.scm 382 */
																BgL_auxz00_3098 = BgL_opt1114z00_22;
															}
														else
															{
																obj_t BgL_auxz00_3101;

																BgL_auxz00_3101 =
																	BGl_typezd2errorzd2zz__errorz00
																	(BGl_string2014z00zz__socketz00, BINT(17165L),
																	BGl_string2025z00zz__socketz00,
																	BGl_string2026z00zz__socketz00,
																	BgL_opt1114z00_22);
																FAILURE(BgL_auxz00_3101, BFALSE, BFALSE);
															}
														BgL_outbufz00_1213 =
															VECTOR_REF(BgL_auxz00_3098, BgL_auxz00_3105);
													}
												else
													{	/* Llib/socket.scm 382 */
														BFALSE;
													}
											}
										}
										{	/* Llib/socket.scm 382 */
											obj_t BgL_index1123z00_1229;

											{
												long BgL_iz00_1917;

												BgL_iz00_1917 = 2L;
											BgL_search1117z00_1916:
												if ((BgL_iz00_1917 == BgL_l1116z00_1205))
													{	/* Llib/socket.scm 382 */
														BgL_index1123z00_1229 = BINT((-1L));
													}
												else
													{	/* Llib/socket.scm 382 */
														if ((BgL_iz00_1917 == (BgL_l1116z00_1205 - 1L)))
															{	/* Llib/socket.scm 382 */
																BgL_index1123z00_1229 =
																	BGl_errorz00zz__errorz00
																	(BGl_symbol2038z00zz__socketz00,
																	BGl_string2041z00zz__socketz00,
																	BINT(VECTOR_LENGTH(BgL_opt1114z00_22)));
															}
														else
															{	/* Llib/socket.scm 382 */
																obj_t BgL_vz00_1927;

																BgL_vz00_1927 =
																	VECTOR_REF(BgL_opt1114z00_22, BgL_iz00_1917);
																if (
																	(BgL_vz00_1927 ==
																		BGl_keyword2036z00zz__socketz00))
																	{	/* Llib/socket.scm 382 */
																		BgL_index1123z00_1229 =
																			BINT((BgL_iz00_1917 + 1L));
																	}
																else
																	{
																		long BgL_iz00_3129;

																		BgL_iz00_3129 = (BgL_iz00_1917 + 2L);
																		BgL_iz00_1917 = BgL_iz00_3129;
																		goto BgL_search1117z00_1916;
																	}
															}
													}
											}
											{	/* Llib/socket.scm 382 */
												bool_t BgL_test2291z00_3131;

												{	/* Llib/socket.scm 382 */
													long BgL_n1z00_1931;

													{	/* Llib/socket.scm 382 */
														obj_t BgL_tmpz00_3132;

														if (INTEGERP(BgL_index1123z00_1229))
															{	/* Llib/socket.scm 382 */
																BgL_tmpz00_3132 = BgL_index1123z00_1229;
															}
														else
															{
																obj_t BgL_auxz00_3135;

																BgL_auxz00_3135 =
																	BGl_typezd2errorzd2zz__errorz00
																	(BGl_string2014z00zz__socketz00, BINT(17165L),
																	BGl_string2025z00zz__socketz00,
																	BGl_string2042z00zz__socketz00,
																	BgL_index1123z00_1229);
																FAILURE(BgL_auxz00_3135, BFALSE, BFALSE);
															}
														BgL_n1z00_1931 = (long) CINT(BgL_tmpz00_3132);
													}
													BgL_test2291z00_3131 = (BgL_n1z00_1931 >= 0L);
												}
												if (BgL_test2291z00_3131)
													{
														long BgL_auxz00_3148;
														obj_t BgL_auxz00_3141;

														{	/* Llib/socket.scm 382 */
															obj_t BgL_tmpz00_3149;

															if (INTEGERP(BgL_index1123z00_1229))
																{	/* Llib/socket.scm 382 */
																	BgL_tmpz00_3149 = BgL_index1123z00_1229;
																}
															else
																{
																	obj_t BgL_auxz00_3152;

																	BgL_auxz00_3152 =
																		BGl_typezd2errorzd2zz__errorz00
																		(BGl_string2014z00zz__socketz00,
																		BINT(17165L),
																		BGl_string2025z00zz__socketz00,
																		BGl_string2042z00zz__socketz00,
																		BgL_index1123z00_1229);
																	FAILURE(BgL_auxz00_3152, BFALSE, BFALSE);
																}
															BgL_auxz00_3148 = (long) CINT(BgL_tmpz00_3149);
														}
														if (VECTORP(BgL_opt1114z00_22))
															{	/* Llib/socket.scm 382 */
																BgL_auxz00_3141 = BgL_opt1114z00_22;
															}
														else
															{
																obj_t BgL_auxz00_3144;

																BgL_auxz00_3144 =
																	BGl_typezd2errorzd2zz__errorz00
																	(BGl_string2014z00zz__socketz00, BINT(17165L),
																	BGl_string2025z00zz__socketz00,
																	BGl_string2026z00zz__socketz00,
																	BgL_opt1114z00_22);
																FAILURE(BgL_auxz00_3144, BFALSE, BFALSE);
															}
														BgL_timeoutz00_1214 =
															VECTOR_REF(BgL_auxz00_3141, BgL_auxz00_3148);
													}
												else
													{	/* Llib/socket.scm 382 */
														BFALSE;
													}
											}
										}
										{	/* Llib/socket.scm 382 */
											obj_t BgL_arg1265z00_1231;
											obj_t BgL_arg1266z00_1232;

											{
												obj_t BgL_auxz00_3158;

												if (VECTORP(BgL_opt1114z00_22))
													{	/* Llib/socket.scm 382 */
														BgL_auxz00_3158 = BgL_opt1114z00_22;
													}
												else
													{
														obj_t BgL_auxz00_3161;

														BgL_auxz00_3161 =
															BGl_typezd2errorzd2zz__errorz00
															(BGl_string2014z00zz__socketz00, BINT(17165L),
															BGl_string2025z00zz__socketz00,
															BGl_string2026z00zz__socketz00,
															BgL_opt1114z00_22);
														FAILURE(BgL_auxz00_3161, BFALSE, BFALSE);
													}
												BgL_arg1265z00_1231 = VECTOR_REF(BgL_auxz00_3158, 0L);
											}
											{
												obj_t BgL_auxz00_3166;

												if (VECTORP(BgL_opt1114z00_22))
													{	/* Llib/socket.scm 382 */
														BgL_auxz00_3166 = BgL_opt1114z00_22;
													}
												else
													{
														obj_t BgL_auxz00_3169;

														BgL_auxz00_3169 =
															BGl_typezd2errorzd2zz__errorz00
															(BGl_string2014z00zz__socketz00, BINT(17165L),
															BGl_string2025z00zz__socketz00,
															BGl_string2026z00zz__socketz00,
															BgL_opt1114z00_22);
														FAILURE(BgL_auxz00_3169, BFALSE, BFALSE);
													}
												BgL_arg1266z00_1232 = VECTOR_REF(BgL_auxz00_3166, 1L);
											}
											{	/* Llib/socket.scm 382 */
												obj_t BgL_domainz00_1233;

												BgL_domainz00_1233 = BgL_domainz00_1211;
												{	/* Llib/socket.scm 382 */
													obj_t BgL_inbufz00_1234;

													BgL_inbufz00_1234 = BgL_inbufz00_1212;
													{	/* Llib/socket.scm 382 */
														obj_t BgL_outbufz00_1235;

														BgL_outbufz00_1235 = BgL_outbufz00_1213;
														{	/* Llib/socket.scm 382 */
															obj_t BgL_timeoutz00_1236;

															BgL_timeoutz00_1236 = BgL_timeoutz00_1214;
															{	/* Llib/socket.scm 382 */
																obj_t BgL_res1773z00_1942;

																{	/* Llib/socket.scm 382 */
																	obj_t BgL_hostz00_1932;
																	int BgL_portz00_1933;

																	if (STRINGP(BgL_arg1265z00_1231))
																		{	/* Llib/socket.scm 382 */
																			BgL_hostz00_1932 = BgL_arg1265z00_1231;
																		}
																	else
																		{
																			obj_t BgL_auxz00_3176;

																			BgL_auxz00_3176 =
																				BGl_typezd2errorzd2zz__errorz00
																				(BGl_string2014z00zz__socketz00,
																				BINT(17165L),
																				BGl_string2025z00zz__socketz00,
																				BGl_string2020z00zz__socketz00,
																				BgL_arg1265z00_1231);
																			FAILURE(BgL_auxz00_3176, BFALSE, BFALSE);
																		}
																	{	/* Llib/socket.scm 382 */
																		obj_t BgL_tmpz00_3180;

																		if (INTEGERP(BgL_arg1266z00_1232))
																			{	/* Llib/socket.scm 382 */
																				BgL_tmpz00_3180 = BgL_arg1266z00_1232;
																			}
																		else
																			{
																				obj_t BgL_auxz00_3183;

																				BgL_auxz00_3183 =
																					BGl_typezd2errorzd2zz__errorz00
																					(BGl_string2014z00zz__socketz00,
																					BINT(17165L),
																					BGl_string2025z00zz__socketz00,
																					BGl_string2042z00zz__socketz00,
																					BgL_arg1266z00_1232);
																				FAILURE(BgL_auxz00_3183, BFALSE,
																					BFALSE);
																			}
																		BgL_portz00_1933 = CINT(BgL_tmpz00_3180);
																	}
																	BGl_z52socketzd2initz12z92zz__socketz00();
																	{	/* Llib/socket.scm 384 */
																		obj_t BgL_inbufz00_1934;
																		obj_t BgL_outbufz00_1935;

																		BgL_inbufz00_1934 =
																			BGl_getzd2portzd2bufferz00zz__r4_ports_6_10_1z00
																			(BGl_string2043z00zz__socketz00,
																			BgL_inbufz00_1234, (int) (512L));
																		BgL_outbufz00_1935 =
																			BGl_getzd2portzd2bufferz00zz__r4_ports_6_10_1z00
																			(BGl_string2043z00zz__socketz00,
																			BgL_outbufz00_1235, (int) (1024L));
																		{	/* Llib/socket.scm 386 */
																			bool_t BgL_test2299z00_3193;

																			{	/* Llib/socket.scm 386 */
																				bool_t BgL__ortest_1040z00_1938;

																				BgL__ortest_1040z00_1938 =
																					(BgL_domainz00_1233 ==
																					BGl_symbol2027z00zz__socketz00);
																				if (BgL__ortest_1040z00_1938)
																					{	/* Llib/socket.scm 386 */
																						BgL_test2299z00_3193 =
																							BgL__ortest_1040z00_1938;
																					}
																				else
																					{	/* Llib/socket.scm 386 */
																						bool_t BgL__ortest_1041z00_1939;

																						BgL__ortest_1041z00_1939 =
																							(BgL_domainz00_1233 ==
																							BGl_symbol2044z00zz__socketz00);
																						if (BgL__ortest_1041z00_1939)
																							{	/* Llib/socket.scm 386 */
																								BgL_test2299z00_3193 =
																									BgL__ortest_1041z00_1939;
																							}
																						else
																							{	/* Llib/socket.scm 386 */
																								BgL_test2299z00_3193 =
																									(BgL_domainz00_1233 ==
																									BGl_symbol2046z00zz__socketz00);
																							}
																					}
																			}
																			if (BgL_test2299z00_3193)
																				{	/* Llib/socket.scm 388 */
																					obj_t BgL_auxz00_3208;
																					int BgL_tmpz00_3199;

																					if (SYMBOLP(BgL_domainz00_1233))
																						{	/* Llib/socket.scm 388 */
																							BgL_auxz00_3208 =
																								BgL_domainz00_1233;
																						}
																					else
																						{
																							obj_t BgL_auxz00_3211;

																							BgL_auxz00_3211 =
																								BGl_typezd2errorzd2zz__errorz00
																								(BGl_string2014z00zz__socketz00,
																								BINT(17513L),
																								BGl_string2025z00zz__socketz00,
																								BGl_string2048z00zz__socketz00,
																								BgL_domainz00_1233);
																							FAILURE(BgL_auxz00_3211, BFALSE,
																								BFALSE);
																						}
																					{	/* Llib/socket.scm 388 */
																						obj_t BgL_tmpz00_3200;

																						if (INTEGERP(BgL_timeoutz00_1236))
																							{	/* Llib/socket.scm 388 */
																								BgL_tmpz00_3200 =
																									BgL_timeoutz00_1236;
																							}
																						else
																							{
																								obj_t BgL_auxz00_3203;

																								BgL_auxz00_3203 =
																									BGl_typezd2errorzd2zz__errorz00
																									(BGl_string2014z00zz__socketz00,
																									BINT(17492L),
																									BGl_string2025z00zz__socketz00,
																									BGl_string2042z00zz__socketz00,
																									BgL_timeoutz00_1236);
																								FAILURE(BgL_auxz00_3203, BFALSE,
																									BFALSE);
																							}
																						BgL_tmpz00_3199 =
																							CINT(BgL_tmpz00_3200);
																					}
																					BgL_res1773z00_1942 =
																						bgl_make_client_socket
																						(BgL_hostz00_1932, BgL_portz00_1933,
																						BgL_tmpz00_3199, BgL_inbufz00_1934,
																						BgL_outbufz00_1935,
																						BgL_auxz00_3208);
																				}
																			else
																				{	/* Llib/socket.scm 386 */
																					bool_t BgL_test2304z00_3216;

																					{	/* Llib/socket.scm 386 */
																						bool_t BgL__ortest_1042z00_1941;

																						BgL__ortest_1042z00_1941 =
																							(BgL_domainz00_1233 ==
																							BGl_symbol2049z00zz__socketz00);
																						if (BgL__ortest_1042z00_1941)
																							{	/* Llib/socket.scm 386 */
																								BgL_test2304z00_3216 =
																									BgL__ortest_1042z00_1941;
																							}
																						else
																							{	/* Llib/socket.scm 386 */
																								BgL_test2304z00_3216 =
																									(BgL_domainz00_1233 ==
																									BGl_symbol2051z00zz__socketz00);
																							}
																					}
																					if (BgL_test2304z00_3216)
																						{	/* Llib/socket.scm 391 */
																							int BgL_tmpz00_3220;

																							{	/* Llib/socket.scm 391 */
																								obj_t BgL_tmpz00_3221;

																								if (INTEGERP
																									(BgL_timeoutz00_1236))
																									{	/* Llib/socket.scm 391 */
																										BgL_tmpz00_3221 =
																											BgL_timeoutz00_1236;
																									}
																								else
																									{
																										obj_t BgL_auxz00_3224;

																										BgL_auxz00_3224 =
																											BGl_typezd2errorzd2zz__errorz00
																											(BGl_string2014z00zz__socketz00,
																											BINT(17601L),
																											BGl_string2025z00zz__socketz00,
																											BGl_string2042z00zz__socketz00,
																											BgL_timeoutz00_1236);
																										FAILURE(BgL_auxz00_3224,
																											BFALSE, BFALSE);
																									}
																								BgL_tmpz00_3220 =
																									CINT(BgL_tmpz00_3221);
																							}
																							BgL_res1773z00_1942 =
																								bgl_make_client_unix_socket
																								(BgL_hostz00_1932,
																								BgL_tmpz00_3220,
																								BgL_inbufz00_1934,
																								BgL_outbufz00_1935);
																						}
																					else
																						{	/* Llib/socket.scm 394 */
																							obj_t BgL_aux1838z00_2534;

																							BgL_aux1838z00_2534 =
																								BGl_errorz00zz__errorz00
																								(BGl_string2043z00zz__socketz00,
																								BGl_string2053z00zz__socketz00,
																								BgL_domainz00_1233);
																							if (SOCKETP(BgL_aux1838z00_2534))
																								{	/* Llib/socket.scm 394 */
																									BgL_res1773z00_1942 =
																										BgL_aux1838z00_2534;
																								}
																							else
																								{
																									obj_t BgL_auxz00_3233;

																									BgL_auxz00_3233 =
																										BGl_typezd2errorzd2zz__errorz00
																										(BGl_string2014z00zz__socketz00,
																										BINT(17707L),
																										BGl_string2025z00zz__socketz00,
																										BGl_string2012z00zz__socketz00,
																										BgL_aux1838z00_2534);
																									FAILURE(BgL_auxz00_3233,
																										BFALSE, BFALSE);
																								}
																						}
																				}
																		}
																	}
																}
																return BgL_res1773z00_1942;
															}
														}
													}
												}
											}
										}
									}
								}
							}
						}
					}
				}
			}
		}

	}



/* make-client-socket */
	BGL_EXPORTED_DEF obj_t BGl_makezd2clientzd2socketz00zz__socketz00(obj_t
		BgL_hostz00_16, int BgL_portz00_17, obj_t BgL_domainz00_18,
		obj_t BgL_inbufz00_19, obj_t BgL_outbufz00_20, obj_t BgL_timeoutz00_21)
	{
		{	/* Llib/socket.scm 382 */
			BGl_z52socketzd2initz12z92zz__socketz00();
			{	/* Llib/socket.scm 384 */
				obj_t BgL_inbufz00_1943;
				obj_t BgL_outbufz00_1944;

				BgL_inbufz00_1943 =
					BGl_getzd2portzd2bufferz00zz__r4_ports_6_10_1z00
					(BGl_string2043z00zz__socketz00, BgL_inbufz00_19, (int) (512L));
				BgL_outbufz00_1944 =
					BGl_getzd2portzd2bufferz00zz__r4_ports_6_10_1z00
					(BGl_string2043z00zz__socketz00, BgL_outbufz00_20, (int) (1024L));
				{	/* Llib/socket.scm 386 */
					bool_t BgL_test2308z00_3242;

					{	/* Llib/socket.scm 386 */
						bool_t BgL__ortest_1040z00_1947;

						BgL__ortest_1040z00_1947 =
							(BgL_domainz00_18 == BGl_symbol2027z00zz__socketz00);
						if (BgL__ortest_1040z00_1947)
							{	/* Llib/socket.scm 386 */
								BgL_test2308z00_3242 = BgL__ortest_1040z00_1947;
							}
						else
							{	/* Llib/socket.scm 386 */
								bool_t BgL__ortest_1041z00_1948;

								BgL__ortest_1041z00_1948 =
									(BgL_domainz00_18 == BGl_symbol2044z00zz__socketz00);
								if (BgL__ortest_1041z00_1948)
									{	/* Llib/socket.scm 386 */
										BgL_test2308z00_3242 = BgL__ortest_1041z00_1948;
									}
								else
									{	/* Llib/socket.scm 386 */
										BgL_test2308z00_3242 =
											(BgL_domainz00_18 == BGl_symbol2046z00zz__socketz00);
									}
							}
					}
					if (BgL_test2308z00_3242)
						{	/* Llib/socket.scm 386 */
							return
								bgl_make_client_socket(BgL_hostz00_16, BgL_portz00_17,
								CINT(BgL_timeoutz00_21), BgL_inbufz00_1943, BgL_outbufz00_1944,
								BgL_domainz00_18);
						}
					else
						{	/* Llib/socket.scm 386 */
							bool_t BgL_test2311z00_3250;

							{	/* Llib/socket.scm 386 */
								bool_t BgL__ortest_1042z00_1950;

								BgL__ortest_1042z00_1950 =
									(BgL_domainz00_18 == BGl_symbol2049z00zz__socketz00);
								if (BgL__ortest_1042z00_1950)
									{	/* Llib/socket.scm 386 */
										BgL_test2311z00_3250 = BgL__ortest_1042z00_1950;
									}
								else
									{	/* Llib/socket.scm 386 */
										BgL_test2311z00_3250 =
											(BgL_domainz00_18 == BGl_symbol2051z00zz__socketz00);
									}
							}
							if (BgL_test2311z00_3250)
								{	/* Llib/socket.scm 386 */
									return
										bgl_make_client_unix_socket(BgL_hostz00_16,
										CINT(BgL_timeoutz00_21), BgL_inbufz00_1943,
										BgL_outbufz00_1944);
								}
							else
								{	/* Llib/socket.scm 386 */
									return
										BGl_errorz00zz__errorz00(BGl_string2043z00zz__socketz00,
										BGl_string2053z00zz__socketz00, BgL_domainz00_18);
								}
						}
				}
			}
		}

	}



/* make-server-socket */
	BGL_EXPORTED_DEF obj_t BGl_makezd2serverzd2socketz00zz__socketz00(obj_t
		BgL_portz00_24)
	{
		{	/* Llib/socket.scm 399 */
			{	/* Llib/socket.scm 228 */
				obj_t BgL_dsssl1126z00_1255;

				BgL_dsssl1126z00_1255 = BgL_portz00_24;
				{	/* Llib/socket.scm 228 */
					obj_t BgL_portz00_1256;

					{	/* Llib/socket.scm 228 */
						bool_t BgL_test2313z00_3257;

						if (NULLP(BgL_dsssl1126z00_1255))
							{	/* Llib/socket.scm 228 */
								BgL_test2313z00_3257 = ((bool_t) 1);
							}
						else
							{	/* Llib/socket.scm 228 */
								BgL_test2313z00_3257 =
									CBOOL(BGl_memqz00zz__r4_pairs_and_lists_6_3z00(CAR
										(BgL_dsssl1126z00_1255), BGl_list2054z00zz__socketz00));
							}
						if (BgL_test2313z00_3257)
							{	/* Llib/socket.scm 228 */
								BgL_portz00_1256 = BINT(0L);
							}
						else
							{	/* Llib/socket.scm 228 */
								obj_t BgL_tmp1127z00_1283;

								BgL_tmp1127z00_1283 = CAR(BgL_dsssl1126z00_1255);
								BgL_dsssl1126z00_1255 = CDR(BgL_dsssl1126z00_1255);
								BgL_portz00_1256 = BgL_tmp1127z00_1283;
							}
					}
					{	/* Llib/socket.scm 228 */
						obj_t BgL_namez00_1257;

						BgL_namez00_1257 =
							BGl_dssslzd2getzd2keyzd2argzd2zz__dssslz00(BgL_dsssl1126z00_1255,
							BGl_keyword2057z00zz__socketz00, BFALSE);
						{	/* Llib/socket.scm 228 */
							obj_t BgL_backlogz00_1258;

							BgL_backlogz00_1258 =
								BGl_dssslzd2getzd2keyzd2argzd2zz__dssslz00
								(BgL_dsssl1126z00_1255, BGl_keyword2055z00zz__socketz00,
								BINT(5L));
							{	/* Llib/socket.scm 228 */
								obj_t BgL_domainz00_1259;

								BgL_domainz00_1259 =
									BGl_dssslzd2getzd2keyzd2argzd2zz__dssslz00
									(BgL_dsssl1126z00_1255, BGl_keyword2030z00zz__socketz00,
									BGl_symbol2027z00zz__socketz00);
								if (NULLP(BGl_dssslzd2getzd2keyzd2restzd2argz00zz__dssslz00
										(BgL_dsssl1126z00_1255, BGl_list2054z00zz__socketz00)))
									{	/* Llib/socket.scm 228 */
										BGl_z52socketzd2initz12z92zz__socketz00();
										{	/* Llib/socket.scm 401 */
											bool_t BgL_test2316z00_3274;

											{	/* Llib/socket.scm 401 */
												bool_t BgL__ortest_1045z00_1268;

												BgL__ortest_1045z00_1268 =
													(BgL_domainz00_1259 ==
													BGl_symbol2027z00zz__socketz00);
												if (BgL__ortest_1045z00_1268)
													{	/* Llib/socket.scm 401 */
														BgL_test2316z00_3274 = BgL__ortest_1045z00_1268;
													}
												else
													{	/* Llib/socket.scm 401 */
														BgL_test2316z00_3274 =
															(BgL_domainz00_1259 ==
															BGl_symbol2044z00zz__socketz00);
													}
											}
											if (BgL_test2316z00_3274)
												{	/* Llib/socket.scm 401 */
													return
														bgl_make_server_socket(BgL_namez00_1257,
														CINT(BgL_portz00_1256),
														CINT(BgL_backlogz00_1258), BgL_domainz00_1259);
												}
											else
												{	/* Llib/socket.scm 401 */
													bool_t BgL_test2318z00_3281;

													{	/* Llib/socket.scm 401 */
														bool_t BgL__ortest_1046z00_1267;

														BgL__ortest_1046z00_1267 =
															(BgL_domainz00_1259 ==
															BGl_symbol2049z00zz__socketz00);
														if (BgL__ortest_1046z00_1267)
															{	/* Llib/socket.scm 401 */
																BgL_test2318z00_3281 = BgL__ortest_1046z00_1267;
															}
														else
															{	/* Llib/socket.scm 401 */
																BgL_test2318z00_3281 =
																	(BgL_domainz00_1259 ==
																	BGl_symbol2051z00zz__socketz00);
															}
													}
													if (BgL_test2318z00_3281)
														{	/* Llib/socket.scm 401 */
															return
																bgl_make_server_unix_socket(BgL_namez00_1257,
																CINT(BgL_backlogz00_1258));
														}
													else
														{	/* Llib/socket.scm 401 */
															return
																BGl_errorz00zz__errorz00
																(BGl_string2059z00zz__socketz00,
																BGl_string2060z00zz__socketz00,
																BgL_domainz00_1259);
														}
												}
										}
									}
								else
									{	/* Llib/socket.scm 228 */
										obj_t BgL_arg1283z00_1269;

										{	/* Llib/socket.scm 228 */
											obj_t BgL_arg1285z00_1270;

											{	/* Llib/socket.scm 228 */
												obj_t BgL_arg1291z00_1273;

												BgL_arg1291z00_1273 =
													BGl_dssslzd2getzd2keyzd2restzd2argz00zz__dssslz00
													(BgL_dsssl1126z00_1255, BGl_list2054z00zz__socketz00);
												{	/* Llib/socket.scm 228 */
													obj_t BgL_list1292z00_1274;

													BgL_list1292z00_1274 =
														MAKE_YOUNG_PAIR(BgL_arg1291z00_1273, BNIL);
													BgL_arg1285z00_1270 =
														BGl_mapz00zz__r4_control_features_6_9z00
														(BGl_proc2061z00zz__socketz00,
														BgL_list1292z00_1274);
												}
											}
											{	/* Llib/socket.scm 228 */
												obj_t BgL_list1286z00_1271;

												BgL_list1286z00_1271 =
													MAKE_YOUNG_PAIR(BgL_arg1285z00_1270, BNIL);
												BgL_arg1283z00_1269 =
													BGl_applyz00zz__r4_control_features_6_9z00
													(BGl_stringzd2appendzd2envz00zz__r4_strings_6_7z00,
													BGl_string2062z00zz__socketz00, BgL_list1286z00_1271);
											}
										}
										return
											BGl_errorz00zz__errorz00(BGl_string2063z00zz__socketz00,
											BgL_arg1283z00_1269, BgL_dsssl1126z00_1255);
									}
							}
						}
					}
				}
			}
		}

	}



/* &make-server-socket */
	obj_t BGl_z62makezd2serverzd2socketz62zz__socketz00(obj_t BgL_envz00_2422,
		obj_t BgL_portz00_2423)
	{
		{	/* Llib/socket.scm 399 */
			return BGl_makezd2serverzd2socketz00zz__socketz00(BgL_portz00_2423);
		}

	}



/* &<@anonymous:1293> */
	obj_t BGl_z62zc3z04anonymousza31293ze3ze5zz__socketz00(obj_t BgL_envz00_2424,
		obj_t BgL_vz00_2425)
	{
		{	/* Llib/socket.scm 228 */
			{	/* Llib/socket.scm 228 */
				obj_t BgL_list1294z00_2730;

				BgL_list1294z00_2730 = MAKE_YOUNG_PAIR(BgL_vz00_2425, BNIL);
				return
					BGl_formatz00zz__r4_output_6_10_3z00(BGl_string2064z00zz__socketz00,
					BgL_list1294z00_2730);
			}
		}

	}



/* _socket-accept */
	obj_t BGl__socketzd2acceptzd2zz__socketz00(obj_t BgL_env1129z00_30,
		obj_t BgL_opt1128z00_29)
	{
		{	/* Llib/socket.scm 415 */
			{	/* Llib/socket.scm 415 */
				long BgL_l1130z00_1286;

				{	/* Llib/socket.scm 415 */
					obj_t BgL_vectorz00_1956;

					if (VECTORP(BgL_opt1128z00_29))
						{	/* Llib/socket.scm 415 */
							BgL_vectorz00_1956 = BgL_opt1128z00_29;
						}
					else
						{
							obj_t BgL_auxz00_3299;

							BgL_auxz00_3299 =
								BGl_typezd2errorzd2zz__errorz00(BGl_string2014z00zz__socketz00,
								BINT(18694L), BGl_string2065z00zz__socketz00,
								BGl_string2026z00zz__socketz00, BgL_opt1128z00_29);
							FAILURE(BgL_auxz00_3299, BFALSE, BFALSE);
						}
					BgL_l1130z00_1286 = VECTOR_LENGTH(BgL_vectorz00_1956);
				}
				{	/* Llib/socket.scm 415 */
					obj_t BgL_g1137z00_1290;

					{
						obj_t BgL_auxz00_3304;

						if (VECTORP(BgL_opt1128z00_29))
							{	/* Llib/socket.scm 415 */
								BgL_auxz00_3304 = BgL_opt1128z00_29;
							}
						else
							{
								obj_t BgL_auxz00_3307;

								BgL_auxz00_3307 =
									BGl_typezd2errorzd2zz__errorz00
									(BGl_string2014z00zz__socketz00, BINT(18694L),
									BGl_string2065z00zz__socketz00,
									BGl_string2026z00zz__socketz00, BgL_opt1128z00_29);
								FAILURE(BgL_auxz00_3307, BFALSE, BFALSE);
							}
						BgL_g1137z00_1290 = VECTOR_REF(BgL_auxz00_3304, 0L);
					}
					{	/* Llib/socket.scm 415 */
						obj_t BgL_errpz00_1291;

						BgL_errpz00_1291 = BTRUE;
						{	/* Llib/socket.scm 415 */
							obj_t BgL_inbufz00_1292;

							BgL_inbufz00_1292 = BTRUE;
							{	/* Llib/socket.scm 415 */
								obj_t BgL_outbufz00_1293;

								BgL_outbufz00_1293 = BTRUE;
								{	/* Llib/socket.scm 415 */

									{
										long BgL_iz00_1294;

										BgL_iz00_1294 = 1L;
									BgL_check1132z00_1295:
										if ((BgL_iz00_1294 == BgL_l1130z00_1286))
											{	/* Llib/socket.scm 415 */
												BNIL;
											}
										else
											{	/* Llib/socket.scm 415 */
												bool_t BgL_test2323z00_3314;

												{	/* Llib/socket.scm 415 */
													obj_t BgL_arg1331z00_1301;

													BgL_arg1331z00_1301 =
														VECTOR_REF(
														((obj_t) BgL_opt1128z00_29), BgL_iz00_1294);
													BgL_test2323z00_3314 =
														CBOOL(BGl_memqz00zz__r4_pairs_and_lists_6_3z00
														(BgL_arg1331z00_1301,
															BGl_list2066z00zz__socketz00));
												}
												if (BgL_test2323z00_3314)
													{
														long BgL_iz00_3319;

														BgL_iz00_3319 = (BgL_iz00_1294 + 2L);
														BgL_iz00_1294 = BgL_iz00_3319;
														goto BgL_check1132z00_1295;
													}
												else
													{	/* Llib/socket.scm 415 */
														obj_t BgL_arg1330z00_1300;

														BgL_arg1330z00_1300 =
															VECTOR_REF(
															((obj_t) BgL_opt1128z00_29), BgL_iz00_1294);
														BGl_errorz00zz__errorz00
															(BGl_symbol2069z00zz__socketz00,
															BGl_string2040z00zz__socketz00,
															BgL_arg1330z00_1300);
													}
											}
									}
									{	/* Llib/socket.scm 415 */
										obj_t BgL_index1134z00_1302;

										{
											long BgL_iz00_1972;

											BgL_iz00_1972 = 1L;
										BgL_search1131z00_1971:
											if ((BgL_iz00_1972 == BgL_l1130z00_1286))
												{	/* Llib/socket.scm 415 */
													BgL_index1134z00_1302 = BINT((-1L));
												}
											else
												{	/* Llib/socket.scm 415 */
													if ((BgL_iz00_1972 == (BgL_l1130z00_1286 - 1L)))
														{	/* Llib/socket.scm 415 */
															BgL_index1134z00_1302 =
																BGl_errorz00zz__errorz00
																(BGl_symbol2069z00zz__socketz00,
																BGl_string2071z00zz__socketz00,
																BINT(VECTOR_LENGTH(BgL_opt1128z00_29)));
														}
													else
														{	/* Llib/socket.scm 415 */
															obj_t BgL_vz00_1982;

															BgL_vz00_1982 =
																VECTOR_REF(BgL_opt1128z00_29, BgL_iz00_1972);
															if (
																(BgL_vz00_1982 ==
																	BGl_keyword2067z00zz__socketz00))
																{	/* Llib/socket.scm 415 */
																	BgL_index1134z00_1302 =
																		BINT((BgL_iz00_1972 + 1L));
																}
															else
																{
																	long BgL_iz00_3338;

																	BgL_iz00_3338 = (BgL_iz00_1972 + 2L);
																	BgL_iz00_1972 = BgL_iz00_3338;
																	goto BgL_search1131z00_1971;
																}
														}
												}
										}
										{	/* Llib/socket.scm 415 */
											bool_t BgL_test2327z00_3340;

											{	/* Llib/socket.scm 415 */
												long BgL_n1z00_1986;

												{	/* Llib/socket.scm 415 */
													obj_t BgL_tmpz00_3341;

													if (INTEGERP(BgL_index1134z00_1302))
														{	/* Llib/socket.scm 415 */
															BgL_tmpz00_3341 = BgL_index1134z00_1302;
														}
													else
														{
															obj_t BgL_auxz00_3344;

															BgL_auxz00_3344 =
																BGl_typezd2errorzd2zz__errorz00
																(BGl_string2014z00zz__socketz00, BINT(18694L),
																BGl_string2065z00zz__socketz00,
																BGl_string2042z00zz__socketz00,
																BgL_index1134z00_1302);
															FAILURE(BgL_auxz00_3344, BFALSE, BFALSE);
														}
													BgL_n1z00_1986 = (long) CINT(BgL_tmpz00_3341);
												}
												BgL_test2327z00_3340 = (BgL_n1z00_1986 >= 0L);
											}
											if (BgL_test2327z00_3340)
												{
													long BgL_auxz00_3357;
													obj_t BgL_auxz00_3350;

													{	/* Llib/socket.scm 415 */
														obj_t BgL_tmpz00_3358;

														if (INTEGERP(BgL_index1134z00_1302))
															{	/* Llib/socket.scm 415 */
																BgL_tmpz00_3358 = BgL_index1134z00_1302;
															}
														else
															{
																obj_t BgL_auxz00_3361;

																BgL_auxz00_3361 =
																	BGl_typezd2errorzd2zz__errorz00
																	(BGl_string2014z00zz__socketz00, BINT(18694L),
																	BGl_string2065z00zz__socketz00,
																	BGl_string2042z00zz__socketz00,
																	BgL_index1134z00_1302);
																FAILURE(BgL_auxz00_3361, BFALSE, BFALSE);
															}
														BgL_auxz00_3357 = (long) CINT(BgL_tmpz00_3358);
													}
													if (VECTORP(BgL_opt1128z00_29))
														{	/* Llib/socket.scm 415 */
															BgL_auxz00_3350 = BgL_opt1128z00_29;
														}
													else
														{
															obj_t BgL_auxz00_3353;

															BgL_auxz00_3353 =
																BGl_typezd2errorzd2zz__errorz00
																(BGl_string2014z00zz__socketz00, BINT(18694L),
																BGl_string2065z00zz__socketz00,
																BGl_string2026z00zz__socketz00,
																BgL_opt1128z00_29);
															FAILURE(BgL_auxz00_3353, BFALSE, BFALSE);
														}
													BgL_errpz00_1291 =
														VECTOR_REF(BgL_auxz00_3350, BgL_auxz00_3357);
												}
											else
												{	/* Llib/socket.scm 415 */
													BFALSE;
												}
										}
									}
									{	/* Llib/socket.scm 415 */
										obj_t BgL_index1135z00_1304;

										{
											long BgL_iz00_1988;

											BgL_iz00_1988 = 1L;
										BgL_search1131z00_1987:
											if ((BgL_iz00_1988 == BgL_l1130z00_1286))
												{	/* Llib/socket.scm 415 */
													BgL_index1135z00_1304 = BINT((-1L));
												}
											else
												{	/* Llib/socket.scm 415 */
													if ((BgL_iz00_1988 == (BgL_l1130z00_1286 - 1L)))
														{	/* Llib/socket.scm 415 */
															BgL_index1135z00_1304 =
																BGl_errorz00zz__errorz00
																(BGl_symbol2069z00zz__socketz00,
																BGl_string2071z00zz__socketz00,
																BINT(VECTOR_LENGTH(BgL_opt1128z00_29)));
														}
													else
														{	/* Llib/socket.scm 415 */
															obj_t BgL_vz00_1998;

															BgL_vz00_1998 =
																VECTOR_REF(BgL_opt1128z00_29, BgL_iz00_1988);
															if (
																(BgL_vz00_1998 ==
																	BGl_keyword2032z00zz__socketz00))
																{	/* Llib/socket.scm 415 */
																	BgL_index1135z00_1304 =
																		BINT((BgL_iz00_1988 + 1L));
																}
															else
																{
																	long BgL_iz00_3381;

																	BgL_iz00_3381 = (BgL_iz00_1988 + 2L);
																	BgL_iz00_1988 = BgL_iz00_3381;
																	goto BgL_search1131z00_1987;
																}
														}
												}
										}
										{	/* Llib/socket.scm 415 */
											bool_t BgL_test2334z00_3383;

											{	/* Llib/socket.scm 415 */
												long BgL_n1z00_2002;

												{	/* Llib/socket.scm 415 */
													obj_t BgL_tmpz00_3384;

													if (INTEGERP(BgL_index1135z00_1304))
														{	/* Llib/socket.scm 415 */
															BgL_tmpz00_3384 = BgL_index1135z00_1304;
														}
													else
														{
															obj_t BgL_auxz00_3387;

															BgL_auxz00_3387 =
																BGl_typezd2errorzd2zz__errorz00
																(BGl_string2014z00zz__socketz00, BINT(18694L),
																BGl_string2065z00zz__socketz00,
																BGl_string2042z00zz__socketz00,
																BgL_index1135z00_1304);
															FAILURE(BgL_auxz00_3387, BFALSE, BFALSE);
														}
													BgL_n1z00_2002 = (long) CINT(BgL_tmpz00_3384);
												}
												BgL_test2334z00_3383 = (BgL_n1z00_2002 >= 0L);
											}
											if (BgL_test2334z00_3383)
												{
													long BgL_auxz00_3400;
													obj_t BgL_auxz00_3393;

													{	/* Llib/socket.scm 415 */
														obj_t BgL_tmpz00_3401;

														if (INTEGERP(BgL_index1135z00_1304))
															{	/* Llib/socket.scm 415 */
																BgL_tmpz00_3401 = BgL_index1135z00_1304;
															}
														else
															{
																obj_t BgL_auxz00_3404;

																BgL_auxz00_3404 =
																	BGl_typezd2errorzd2zz__errorz00
																	(BGl_string2014z00zz__socketz00, BINT(18694L),
																	BGl_string2065z00zz__socketz00,
																	BGl_string2042z00zz__socketz00,
																	BgL_index1135z00_1304);
																FAILURE(BgL_auxz00_3404, BFALSE, BFALSE);
															}
														BgL_auxz00_3400 = (long) CINT(BgL_tmpz00_3401);
													}
													if (VECTORP(BgL_opt1128z00_29))
														{	/* Llib/socket.scm 415 */
															BgL_auxz00_3393 = BgL_opt1128z00_29;
														}
													else
														{
															obj_t BgL_auxz00_3396;

															BgL_auxz00_3396 =
																BGl_typezd2errorzd2zz__errorz00
																(BGl_string2014z00zz__socketz00, BINT(18694L),
																BGl_string2065z00zz__socketz00,
																BGl_string2026z00zz__socketz00,
																BgL_opt1128z00_29);
															FAILURE(BgL_auxz00_3396, BFALSE, BFALSE);
														}
													BgL_inbufz00_1292 =
														VECTOR_REF(BgL_auxz00_3393, BgL_auxz00_3400);
												}
											else
												{	/* Llib/socket.scm 415 */
													BFALSE;
												}
										}
									}
									{	/* Llib/socket.scm 415 */
										obj_t BgL_index1136z00_1306;

										{
											long BgL_iz00_2004;

											BgL_iz00_2004 = 1L;
										BgL_search1131z00_2003:
											if ((BgL_iz00_2004 == BgL_l1130z00_1286))
												{	/* Llib/socket.scm 415 */
													BgL_index1136z00_1306 = BINT((-1L));
												}
											else
												{	/* Llib/socket.scm 415 */
													if ((BgL_iz00_2004 == (BgL_l1130z00_1286 - 1L)))
														{	/* Llib/socket.scm 415 */
															BgL_index1136z00_1306 =
																BGl_errorz00zz__errorz00
																(BGl_symbol2069z00zz__socketz00,
																BGl_string2071z00zz__socketz00,
																BINT(VECTOR_LENGTH(BgL_opt1128z00_29)));
														}
													else
														{	/* Llib/socket.scm 415 */
															obj_t BgL_vz00_2014;

															BgL_vz00_2014 =
																VECTOR_REF(BgL_opt1128z00_29, BgL_iz00_2004);
															if (
																(BgL_vz00_2014 ==
																	BGl_keyword2034z00zz__socketz00))
																{	/* Llib/socket.scm 415 */
																	BgL_index1136z00_1306 =
																		BINT((BgL_iz00_2004 + 1L));
																}
															else
																{
																	long BgL_iz00_3424;

																	BgL_iz00_3424 = (BgL_iz00_2004 + 2L);
																	BgL_iz00_2004 = BgL_iz00_3424;
																	goto BgL_search1131z00_2003;
																}
														}
												}
										}
										{	/* Llib/socket.scm 415 */
											bool_t BgL_test2341z00_3426;

											{	/* Llib/socket.scm 415 */
												long BgL_n1z00_2018;

												{	/* Llib/socket.scm 415 */
													obj_t BgL_tmpz00_3427;

													if (INTEGERP(BgL_index1136z00_1306))
														{	/* Llib/socket.scm 415 */
															BgL_tmpz00_3427 = BgL_index1136z00_1306;
														}
													else
														{
															obj_t BgL_auxz00_3430;

															BgL_auxz00_3430 =
																BGl_typezd2errorzd2zz__errorz00
																(BGl_string2014z00zz__socketz00, BINT(18694L),
																BGl_string2065z00zz__socketz00,
																BGl_string2042z00zz__socketz00,
																BgL_index1136z00_1306);
															FAILURE(BgL_auxz00_3430, BFALSE, BFALSE);
														}
													BgL_n1z00_2018 = (long) CINT(BgL_tmpz00_3427);
												}
												BgL_test2341z00_3426 = (BgL_n1z00_2018 >= 0L);
											}
											if (BgL_test2341z00_3426)
												{
													long BgL_auxz00_3443;
													obj_t BgL_auxz00_3436;

													{	/* Llib/socket.scm 415 */
														obj_t BgL_tmpz00_3444;

														if (INTEGERP(BgL_index1136z00_1306))
															{	/* Llib/socket.scm 415 */
																BgL_tmpz00_3444 = BgL_index1136z00_1306;
															}
														else
															{
																obj_t BgL_auxz00_3447;

																BgL_auxz00_3447 =
																	BGl_typezd2errorzd2zz__errorz00
																	(BGl_string2014z00zz__socketz00, BINT(18694L),
																	BGl_string2065z00zz__socketz00,
																	BGl_string2042z00zz__socketz00,
																	BgL_index1136z00_1306);
																FAILURE(BgL_auxz00_3447, BFALSE, BFALSE);
															}
														BgL_auxz00_3443 = (long) CINT(BgL_tmpz00_3444);
													}
													if (VECTORP(BgL_opt1128z00_29))
														{	/* Llib/socket.scm 415 */
															BgL_auxz00_3436 = BgL_opt1128z00_29;
														}
													else
														{
															obj_t BgL_auxz00_3439;

															BgL_auxz00_3439 =
																BGl_typezd2errorzd2zz__errorz00
																(BGl_string2014z00zz__socketz00, BINT(18694L),
																BGl_string2065z00zz__socketz00,
																BGl_string2026z00zz__socketz00,
																BgL_opt1128z00_29);
															FAILURE(BgL_auxz00_3439, BFALSE, BFALSE);
														}
													BgL_outbufz00_1293 =
														VECTOR_REF(BgL_auxz00_3436, BgL_auxz00_3443);
												}
											else
												{	/* Llib/socket.scm 415 */
													BFALSE;
												}
										}
									}
									{	/* Llib/socket.scm 415 */
										obj_t BgL_arg1335z00_1308;

										{
											obj_t BgL_auxz00_3453;

											if (VECTORP(BgL_opt1128z00_29))
												{	/* Llib/socket.scm 415 */
													BgL_auxz00_3453 = BgL_opt1128z00_29;
												}
											else
												{
													obj_t BgL_auxz00_3456;

													BgL_auxz00_3456 =
														BGl_typezd2errorzd2zz__errorz00
														(BGl_string2014z00zz__socketz00, BINT(18694L),
														BGl_string2065z00zz__socketz00,
														BGl_string2026z00zz__socketz00, BgL_opt1128z00_29);
													FAILURE(BgL_auxz00_3456, BFALSE, BFALSE);
												}
											BgL_arg1335z00_1308 = VECTOR_REF(BgL_auxz00_3453, 0L);
										}
										{	/* Llib/socket.scm 415 */
											obj_t BgL_errpz00_1309;

											BgL_errpz00_1309 = BgL_errpz00_1291;
											{	/* Llib/socket.scm 415 */
												obj_t BgL_inbufz00_1310;

												BgL_inbufz00_1310 = BgL_inbufz00_1292;
												{	/* Llib/socket.scm 415 */
													obj_t BgL_outbufz00_1311;

													BgL_outbufz00_1311 = BgL_outbufz00_1293;
													{	/* Llib/socket.scm 415 */
														obj_t BgL_socketz00_2019;

														if (SOCKETP(BgL_arg1335z00_1308))
															{	/* Llib/socket.scm 415 */
																BgL_socketz00_2019 = BgL_arg1335z00_1308;
															}
														else
															{
																obj_t BgL_auxz00_3463;

																BgL_auxz00_3463 =
																	BGl_typezd2errorzd2zz__errorz00
																	(BGl_string2014z00zz__socketz00, BINT(18694L),
																	BGl_string2065z00zz__socketz00,
																	BGl_string2012z00zz__socketz00,
																	BgL_arg1335z00_1308);
																FAILURE(BgL_auxz00_3463, BFALSE, BFALSE);
															}
														return
															bgl_socket_accept(BgL_socketz00_2019,
															CBOOL(BgL_errpz00_1309),
															BGl_getzd2portzd2bufferz00zz__r4_ports_6_10_1z00
															(BGl_string2070z00zz__socketz00,
																BgL_inbufz00_1310, (int) (512L)),
															BGl_getzd2portzd2bufferz00zz__r4_ports_6_10_1z00
															(BGl_string2070z00zz__socketz00,
																BgL_outbufz00_1311, (int) (1024L)));
		}}}}}}}}}}}}

	}



/* socket-accept */
	BGL_EXPORTED_DEF obj_t BGl_socketzd2acceptzd2zz__socketz00(obj_t
		BgL_socketz00_25, obj_t BgL_errpz00_26, obj_t BgL_inbufz00_27,
		obj_t BgL_outbufz00_28)
	{
		{	/* Llib/socket.scm 415 */
			return
				bgl_socket_accept(BgL_socketz00_25,
				CBOOL(BgL_errpz00_26),
				BGl_getzd2portzd2bufferz00zz__r4_ports_6_10_1z00
				(BGl_string2070z00zz__socketz00, BgL_inbufz00_27, (int) (512L)),
				BGl_getzd2portzd2bufferz00zz__r4_ports_6_10_1z00
				(BGl_string2070z00zz__socketz00, BgL_outbufz00_28, (int) (1024L)));
		}

	}



/* _socket-accept-many */
	obj_t BGl__socketzd2acceptzd2manyz00zz__socketz00(obj_t BgL_env1139z00_37,
		obj_t BgL_opt1138z00_36)
	{
		{	/* Llib/socket.scm 426 */
			{	/* Llib/socket.scm 426 */
				long BgL_l1140z00_1321;

				{	/* Llib/socket.scm 426 */
					obj_t BgL_vectorz00_2024;

					if (VECTORP(BgL_opt1138z00_36))
						{	/* Llib/socket.scm 426 */
							BgL_vectorz00_2024 = BgL_opt1138z00_36;
						}
					else
						{
							obj_t BgL_auxz00_3481;

							BgL_auxz00_3481 =
								BGl_typezd2errorzd2zz__errorz00(BGl_string2014z00zz__socketz00,
								BINT(19386L), BGl_string2072z00zz__socketz00,
								BGl_string2026z00zz__socketz00, BgL_opt1138z00_36);
							FAILURE(BgL_auxz00_3481, BFALSE, BFALSE);
						}
					BgL_l1140z00_1321 = VECTOR_LENGTH(BgL_vectorz00_2024);
				}
				{	/* Llib/socket.scm 426 */
					obj_t BgL_g1147z00_1325;
					obj_t BgL_g1148z00_1326;

					{
						obj_t BgL_auxz00_3486;

						if (VECTORP(BgL_opt1138z00_36))
							{	/* Llib/socket.scm 426 */
								BgL_auxz00_3486 = BgL_opt1138z00_36;
							}
						else
							{
								obj_t BgL_auxz00_3489;

								BgL_auxz00_3489 =
									BGl_typezd2errorzd2zz__errorz00
									(BGl_string2014z00zz__socketz00, BINT(19386L),
									BGl_string2072z00zz__socketz00,
									BGl_string2026z00zz__socketz00, BgL_opt1138z00_36);
								FAILURE(BgL_auxz00_3489, BFALSE, BFALSE);
							}
						BgL_g1147z00_1325 = VECTOR_REF(BgL_auxz00_3486, 0L);
					}
					{
						obj_t BgL_auxz00_3494;

						if (VECTORP(BgL_opt1138z00_36))
							{	/* Llib/socket.scm 426 */
								BgL_auxz00_3494 = BgL_opt1138z00_36;
							}
						else
							{
								obj_t BgL_auxz00_3497;

								BgL_auxz00_3497 =
									BGl_typezd2errorzd2zz__errorz00
									(BGl_string2014z00zz__socketz00, BINT(19386L),
									BGl_string2072z00zz__socketz00,
									BGl_string2026z00zz__socketz00, BgL_opt1138z00_36);
								FAILURE(BgL_auxz00_3497, BFALSE, BFALSE);
							}
						BgL_g1148z00_1326 = VECTOR_REF(BgL_auxz00_3494, 1L);
					}
					{	/* Llib/socket.scm 426 */
						obj_t BgL_errpz00_1327;

						BgL_errpz00_1327 = BTRUE;
						{	/* Llib/socket.scm 426 */
							obj_t BgL_inbufsz00_1328;

							BgL_inbufsz00_1328 = BTRUE;
							{	/* Llib/socket.scm 426 */
								obj_t BgL_outbufsz00_1329;

								BgL_outbufsz00_1329 = BTRUE;
								{	/* Llib/socket.scm 426 */

									{
										long BgL_iz00_1330;

										BgL_iz00_1330 = 2L;
									BgL_check1142z00_1331:
										if ((BgL_iz00_1330 == BgL_l1140z00_1321))
											{	/* Llib/socket.scm 426 */
												BNIL;
											}
										else
											{	/* Llib/socket.scm 426 */
												bool_t BgL_test2351z00_3504;

												{	/* Llib/socket.scm 426 */
													obj_t BgL_arg1351z00_1337;

													BgL_arg1351z00_1337 =
														VECTOR_REF(
														((obj_t) BgL_opt1138z00_36), BgL_iz00_1330);
													BgL_test2351z00_3504 =
														CBOOL(BGl_memqz00zz__r4_pairs_and_lists_6_3z00
														(BgL_arg1351z00_1337,
															BGl_list2073z00zz__socketz00));
												}
												if (BgL_test2351z00_3504)
													{
														long BgL_iz00_3509;

														BgL_iz00_3509 = (BgL_iz00_1330 + 2L);
														BgL_iz00_1330 = BgL_iz00_3509;
														goto BgL_check1142z00_1331;
													}
												else
													{	/* Llib/socket.scm 426 */
														obj_t BgL_arg1349z00_1336;

														BgL_arg1349z00_1336 =
															VECTOR_REF(
															((obj_t) BgL_opt1138z00_36), BgL_iz00_1330);
														BGl_errorz00zz__errorz00
															(BGl_symbol2078z00zz__socketz00,
															BGl_string2040z00zz__socketz00,
															BgL_arg1349z00_1336);
													}
											}
									}
									{	/* Llib/socket.scm 426 */
										obj_t BgL_index1144z00_1338;

										{
											long BgL_iz00_2040;

											BgL_iz00_2040 = 2L;
										BgL_search1141z00_2039:
											if ((BgL_iz00_2040 == BgL_l1140z00_1321))
												{	/* Llib/socket.scm 426 */
													BgL_index1144z00_1338 = BINT((-1L));
												}
											else
												{	/* Llib/socket.scm 426 */
													if ((BgL_iz00_2040 == (BgL_l1140z00_1321 - 1L)))
														{	/* Llib/socket.scm 426 */
															BgL_index1144z00_1338 =
																BGl_errorz00zz__errorz00
																(BGl_symbol2078z00zz__socketz00,
																BGl_string2080z00zz__socketz00,
																BINT(VECTOR_LENGTH(BgL_opt1138z00_36)));
														}
													else
														{	/* Llib/socket.scm 426 */
															obj_t BgL_vz00_2050;

															BgL_vz00_2050 =
																VECTOR_REF(BgL_opt1138z00_36, BgL_iz00_2040);
															if (
																(BgL_vz00_2050 ==
																	BGl_keyword2067z00zz__socketz00))
																{	/* Llib/socket.scm 426 */
																	BgL_index1144z00_1338 =
																		BINT((BgL_iz00_2040 + 1L));
																}
															else
																{
																	long BgL_iz00_3528;

																	BgL_iz00_3528 = (BgL_iz00_2040 + 2L);
																	BgL_iz00_2040 = BgL_iz00_3528;
																	goto BgL_search1141z00_2039;
																}
														}
												}
										}
										{	/* Llib/socket.scm 426 */
											bool_t BgL_test2355z00_3530;

											{	/* Llib/socket.scm 426 */
												long BgL_n1z00_2054;

												{	/* Llib/socket.scm 426 */
													obj_t BgL_tmpz00_3531;

													if (INTEGERP(BgL_index1144z00_1338))
														{	/* Llib/socket.scm 426 */
															BgL_tmpz00_3531 = BgL_index1144z00_1338;
														}
													else
														{
															obj_t BgL_auxz00_3534;

															BgL_auxz00_3534 =
																BGl_typezd2errorzd2zz__errorz00
																(BGl_string2014z00zz__socketz00, BINT(19386L),
																BGl_string2072z00zz__socketz00,
																BGl_string2042z00zz__socketz00,
																BgL_index1144z00_1338);
															FAILURE(BgL_auxz00_3534, BFALSE, BFALSE);
														}
													BgL_n1z00_2054 = (long) CINT(BgL_tmpz00_3531);
												}
												BgL_test2355z00_3530 = (BgL_n1z00_2054 >= 0L);
											}
											if (BgL_test2355z00_3530)
												{
													long BgL_auxz00_3547;
													obj_t BgL_auxz00_3540;

													{	/* Llib/socket.scm 426 */
														obj_t BgL_tmpz00_3548;

														if (INTEGERP(BgL_index1144z00_1338))
															{	/* Llib/socket.scm 426 */
																BgL_tmpz00_3548 = BgL_index1144z00_1338;
															}
														else
															{
																obj_t BgL_auxz00_3551;

																BgL_auxz00_3551 =
																	BGl_typezd2errorzd2zz__errorz00
																	(BGl_string2014z00zz__socketz00, BINT(19386L),
																	BGl_string2072z00zz__socketz00,
																	BGl_string2042z00zz__socketz00,
																	BgL_index1144z00_1338);
																FAILURE(BgL_auxz00_3551, BFALSE, BFALSE);
															}
														BgL_auxz00_3547 = (long) CINT(BgL_tmpz00_3548);
													}
													if (VECTORP(BgL_opt1138z00_36))
														{	/* Llib/socket.scm 426 */
															BgL_auxz00_3540 = BgL_opt1138z00_36;
														}
													else
														{
															obj_t BgL_auxz00_3543;

															BgL_auxz00_3543 =
																BGl_typezd2errorzd2zz__errorz00
																(BGl_string2014z00zz__socketz00, BINT(19386L),
																BGl_string2072z00zz__socketz00,
																BGl_string2026z00zz__socketz00,
																BgL_opt1138z00_36);
															FAILURE(BgL_auxz00_3543, BFALSE, BFALSE);
														}
													BgL_errpz00_1327 =
														VECTOR_REF(BgL_auxz00_3540, BgL_auxz00_3547);
												}
											else
												{	/* Llib/socket.scm 426 */
													BFALSE;
												}
										}
									}
									{	/* Llib/socket.scm 426 */
										obj_t BgL_index1145z00_1340;

										{
											long BgL_iz00_2056;

											BgL_iz00_2056 = 2L;
										BgL_search1141z00_2055:
											if ((BgL_iz00_2056 == BgL_l1140z00_1321))
												{	/* Llib/socket.scm 426 */
													BgL_index1145z00_1340 = BINT((-1L));
												}
											else
												{	/* Llib/socket.scm 426 */
													if ((BgL_iz00_2056 == (BgL_l1140z00_1321 - 1L)))
														{	/* Llib/socket.scm 426 */
															BgL_index1145z00_1340 =
																BGl_errorz00zz__errorz00
																(BGl_symbol2078z00zz__socketz00,
																BGl_string2080z00zz__socketz00,
																BINT(VECTOR_LENGTH(BgL_opt1138z00_36)));
														}
													else
														{	/* Llib/socket.scm 426 */
															obj_t BgL_vz00_2066;

															BgL_vz00_2066 =
																VECTOR_REF(BgL_opt1138z00_36, BgL_iz00_2056);
															if (
																(BgL_vz00_2066 ==
																	BGl_keyword2074z00zz__socketz00))
																{	/* Llib/socket.scm 426 */
																	BgL_index1145z00_1340 =
																		BINT((BgL_iz00_2056 + 1L));
																}
															else
																{
																	long BgL_iz00_3571;

																	BgL_iz00_3571 = (BgL_iz00_2056 + 2L);
																	BgL_iz00_2056 = BgL_iz00_3571;
																	goto BgL_search1141z00_2055;
																}
														}
												}
										}
										{	/* Llib/socket.scm 426 */
											bool_t BgL_test2362z00_3573;

											{	/* Llib/socket.scm 426 */
												long BgL_n1z00_2070;

												{	/* Llib/socket.scm 426 */
													obj_t BgL_tmpz00_3574;

													if (INTEGERP(BgL_index1145z00_1340))
														{	/* Llib/socket.scm 426 */
															BgL_tmpz00_3574 = BgL_index1145z00_1340;
														}
													else
														{
															obj_t BgL_auxz00_3577;

															BgL_auxz00_3577 =
																BGl_typezd2errorzd2zz__errorz00
																(BGl_string2014z00zz__socketz00, BINT(19386L),
																BGl_string2072z00zz__socketz00,
																BGl_string2042z00zz__socketz00,
																BgL_index1145z00_1340);
															FAILURE(BgL_auxz00_3577, BFALSE, BFALSE);
														}
													BgL_n1z00_2070 = (long) CINT(BgL_tmpz00_3574);
												}
												BgL_test2362z00_3573 = (BgL_n1z00_2070 >= 0L);
											}
											if (BgL_test2362z00_3573)
												{
													long BgL_auxz00_3590;
													obj_t BgL_auxz00_3583;

													{	/* Llib/socket.scm 426 */
														obj_t BgL_tmpz00_3591;

														if (INTEGERP(BgL_index1145z00_1340))
															{	/* Llib/socket.scm 426 */
																BgL_tmpz00_3591 = BgL_index1145z00_1340;
															}
														else
															{
																obj_t BgL_auxz00_3594;

																BgL_auxz00_3594 =
																	BGl_typezd2errorzd2zz__errorz00
																	(BGl_string2014z00zz__socketz00, BINT(19386L),
																	BGl_string2072z00zz__socketz00,
																	BGl_string2042z00zz__socketz00,
																	BgL_index1145z00_1340);
																FAILURE(BgL_auxz00_3594, BFALSE, BFALSE);
															}
														BgL_auxz00_3590 = (long) CINT(BgL_tmpz00_3591);
													}
													if (VECTORP(BgL_opt1138z00_36))
														{	/* Llib/socket.scm 426 */
															BgL_auxz00_3583 = BgL_opt1138z00_36;
														}
													else
														{
															obj_t BgL_auxz00_3586;

															BgL_auxz00_3586 =
																BGl_typezd2errorzd2zz__errorz00
																(BGl_string2014z00zz__socketz00, BINT(19386L),
																BGl_string2072z00zz__socketz00,
																BGl_string2026z00zz__socketz00,
																BgL_opt1138z00_36);
															FAILURE(BgL_auxz00_3586, BFALSE, BFALSE);
														}
													BgL_inbufsz00_1328 =
														VECTOR_REF(BgL_auxz00_3583, BgL_auxz00_3590);
												}
											else
												{	/* Llib/socket.scm 426 */
													BFALSE;
												}
										}
									}
									{	/* Llib/socket.scm 426 */
										obj_t BgL_index1146z00_1342;

										{
											long BgL_iz00_2072;

											BgL_iz00_2072 = 2L;
										BgL_search1141z00_2071:
											if ((BgL_iz00_2072 == BgL_l1140z00_1321))
												{	/* Llib/socket.scm 426 */
													BgL_index1146z00_1342 = BINT((-1L));
												}
											else
												{	/* Llib/socket.scm 426 */
													if ((BgL_iz00_2072 == (BgL_l1140z00_1321 - 1L)))
														{	/* Llib/socket.scm 426 */
															BgL_index1146z00_1342 =
																BGl_errorz00zz__errorz00
																(BGl_symbol2078z00zz__socketz00,
																BGl_string2080z00zz__socketz00,
																BINT(VECTOR_LENGTH(BgL_opt1138z00_36)));
														}
													else
														{	/* Llib/socket.scm 426 */
															obj_t BgL_vz00_2082;

															BgL_vz00_2082 =
																VECTOR_REF(BgL_opt1138z00_36, BgL_iz00_2072);
															if (
																(BgL_vz00_2082 ==
																	BGl_keyword2076z00zz__socketz00))
																{	/* Llib/socket.scm 426 */
																	BgL_index1146z00_1342 =
																		BINT((BgL_iz00_2072 + 1L));
																}
															else
																{
																	long BgL_iz00_3614;

																	BgL_iz00_3614 = (BgL_iz00_2072 + 2L);
																	BgL_iz00_2072 = BgL_iz00_3614;
																	goto BgL_search1141z00_2071;
																}
														}
												}
										}
										{	/* Llib/socket.scm 426 */
											bool_t BgL_test2369z00_3616;

											{	/* Llib/socket.scm 426 */
												long BgL_n1z00_2086;

												{	/* Llib/socket.scm 426 */
													obj_t BgL_tmpz00_3617;

													if (INTEGERP(BgL_index1146z00_1342))
														{	/* Llib/socket.scm 426 */
															BgL_tmpz00_3617 = BgL_index1146z00_1342;
														}
													else
														{
															obj_t BgL_auxz00_3620;

															BgL_auxz00_3620 =
																BGl_typezd2errorzd2zz__errorz00
																(BGl_string2014z00zz__socketz00, BINT(19386L),
																BGl_string2072z00zz__socketz00,
																BGl_string2042z00zz__socketz00,
																BgL_index1146z00_1342);
															FAILURE(BgL_auxz00_3620, BFALSE, BFALSE);
														}
													BgL_n1z00_2086 = (long) CINT(BgL_tmpz00_3617);
												}
												BgL_test2369z00_3616 = (BgL_n1z00_2086 >= 0L);
											}
											if (BgL_test2369z00_3616)
												{
													long BgL_auxz00_3633;
													obj_t BgL_auxz00_3626;

													{	/* Llib/socket.scm 426 */
														obj_t BgL_tmpz00_3634;

														if (INTEGERP(BgL_index1146z00_1342))
															{	/* Llib/socket.scm 426 */
																BgL_tmpz00_3634 = BgL_index1146z00_1342;
															}
														else
															{
																obj_t BgL_auxz00_3637;

																BgL_auxz00_3637 =
																	BGl_typezd2errorzd2zz__errorz00
																	(BGl_string2014z00zz__socketz00, BINT(19386L),
																	BGl_string2072z00zz__socketz00,
																	BGl_string2042z00zz__socketz00,
																	BgL_index1146z00_1342);
																FAILURE(BgL_auxz00_3637, BFALSE, BFALSE);
															}
														BgL_auxz00_3633 = (long) CINT(BgL_tmpz00_3634);
													}
													if (VECTORP(BgL_opt1138z00_36))
														{	/* Llib/socket.scm 426 */
															BgL_auxz00_3626 = BgL_opt1138z00_36;
														}
													else
														{
															obj_t BgL_auxz00_3629;

															BgL_auxz00_3629 =
																BGl_typezd2errorzd2zz__errorz00
																(BGl_string2014z00zz__socketz00, BINT(19386L),
																BGl_string2072z00zz__socketz00,
																BGl_string2026z00zz__socketz00,
																BgL_opt1138z00_36);
															FAILURE(BgL_auxz00_3629, BFALSE, BFALSE);
														}
													BgL_outbufsz00_1329 =
														VECTOR_REF(BgL_auxz00_3626, BgL_auxz00_3633);
												}
											else
												{	/* Llib/socket.scm 426 */
													BFALSE;
												}
										}
									}
									{	/* Llib/socket.scm 426 */
										obj_t BgL_arg1355z00_1344;
										obj_t BgL_arg1356z00_1345;

										{
											obj_t BgL_auxz00_3643;

											if (VECTORP(BgL_opt1138z00_36))
												{	/* Llib/socket.scm 426 */
													BgL_auxz00_3643 = BgL_opt1138z00_36;
												}
											else
												{
													obj_t BgL_auxz00_3646;

													BgL_auxz00_3646 =
														BGl_typezd2errorzd2zz__errorz00
														(BGl_string2014z00zz__socketz00, BINT(19386L),
														BGl_string2072z00zz__socketz00,
														BGl_string2026z00zz__socketz00, BgL_opt1138z00_36);
													FAILURE(BgL_auxz00_3646, BFALSE, BFALSE);
												}
											BgL_arg1355z00_1344 = VECTOR_REF(BgL_auxz00_3643, 0L);
										}
										{
											obj_t BgL_auxz00_3651;

											if (VECTORP(BgL_opt1138z00_36))
												{	/* Llib/socket.scm 426 */
													BgL_auxz00_3651 = BgL_opt1138z00_36;
												}
											else
												{
													obj_t BgL_auxz00_3654;

													BgL_auxz00_3654 =
														BGl_typezd2errorzd2zz__errorz00
														(BGl_string2014z00zz__socketz00, BINT(19386L),
														BGl_string2072z00zz__socketz00,
														BGl_string2026z00zz__socketz00, BgL_opt1138z00_36);
													FAILURE(BgL_auxz00_3654, BFALSE, BFALSE);
												}
											BgL_arg1356z00_1345 = VECTOR_REF(BgL_auxz00_3651, 1L);
										}
										{	/* Llib/socket.scm 426 */
											obj_t BgL_errpz00_1346;

											BgL_errpz00_1346 = BgL_errpz00_1327;
											{	/* Llib/socket.scm 426 */
												obj_t BgL_inbufsz00_1347;

												BgL_inbufsz00_1347 = BgL_inbufsz00_1328;
												{	/* Llib/socket.scm 426 */
													obj_t BgL_outbufsz00_1348;

													BgL_outbufsz00_1348 = BgL_outbufsz00_1329;
													{	/* Llib/socket.scm 426 */
														obj_t BgL_auxz00_3666;
														obj_t BgL_auxz00_3659;

														if (VECTORP(BgL_arg1356z00_1345))
															{	/* Llib/socket.scm 426 */
																BgL_auxz00_3666 = BgL_arg1356z00_1345;
															}
														else
															{
																obj_t BgL_auxz00_3669;

																BgL_auxz00_3669 =
																	BGl_typezd2errorzd2zz__errorz00
																	(BGl_string2014z00zz__socketz00, BINT(19386L),
																	BGl_string2072z00zz__socketz00,
																	BGl_string2026z00zz__socketz00,
																	BgL_arg1356z00_1345);
																FAILURE(BgL_auxz00_3669, BFALSE, BFALSE);
															}
														if (SOCKETP(BgL_arg1355z00_1344))
															{	/* Llib/socket.scm 426 */
																BgL_auxz00_3659 = BgL_arg1355z00_1344;
															}
														else
															{
																obj_t BgL_auxz00_3662;

																BgL_auxz00_3662 =
																	BGl_typezd2errorzd2zz__errorz00
																	(BGl_string2014z00zz__socketz00, BINT(19386L),
																	BGl_string2072z00zz__socketz00,
																	BGl_string2012z00zz__socketz00,
																	BgL_arg1355z00_1344);
																FAILURE(BgL_auxz00_3662, BFALSE, BFALSE);
															}
														return
															BGl_socketzd2acceptzd2manyz00zz__socketz00
															(BgL_auxz00_3659, BgL_auxz00_3666,
															BgL_errpz00_1346, BgL_inbufsz00_1347,
															BgL_outbufsz00_1348);
													}
												}
											}
										}
									}
								}
							}
						}
					}
				}
			}
		}

	}



/* socket-accept-many */
	BGL_EXPORTED_DEF obj_t BGl_socketzd2acceptzd2manyz00zz__socketz00(obj_t
		BgL_socketz00_31, obj_t BgL_resultz00_32, obj_t BgL_errpz00_33,
		obj_t BgL_inbufsz00_34, obj_t BgL_outbufsz00_35)
	{
		{	/* Llib/socket.scm 426 */
			if (VECTORP(BgL_inbufsz00_34))
				{	/* Llib/socket.scm 427 */
					((bool_t) 0);
				}
			else
				{	/* Llib/socket.scm 427 */
					BgL_inbufsz00_34 =
						make_vector(VECTOR_LENGTH(BgL_resultz00_32), BUNSPEC);
					{
						long BgL_iz00_2097;

						BgL_iz00_2097 = 0L;
					BgL_loopz00_2096:
						if ((BgL_iz00_2097 < VECTOR_LENGTH(BgL_resultz00_32)))
							{	/* Llib/socket.scm 431 */
								obj_t BgL_bufz00_2103;

								BgL_bufz00_2103 =
									BGl_getzd2portzd2bufferz00zz__r4_ports_6_10_1z00
									(BGl_string2079z00zz__socketz00, BTRUE, (int) (512L));
								VECTOR_SET(BgL_inbufsz00_34, BgL_iz00_2097, BgL_bufz00_2103);
								{
									long BgL_iz00_3684;

									BgL_iz00_3684 = (BgL_iz00_2097 + 1L);
									BgL_iz00_2097 = BgL_iz00_3684;
									goto BgL_loopz00_2096;
								}
							}
						else
							{	/* Llib/socket.scm 430 */
								((bool_t) 0);
							}
					}
				}
			if (VECTORP(BgL_outbufsz00_35))
				{	/* Llib/socket.scm 434 */
					((bool_t) 0);
				}
			else
				{	/* Llib/socket.scm 434 */
					BgL_outbufsz00_35 =
						make_vector(VECTOR_LENGTH(BgL_resultz00_32), BUNSPEC);
					{
						long BgL_iz00_2118;

						BgL_iz00_2118 = 0L;
					BgL_loopz00_2117:
						if ((BgL_iz00_2118 < VECTOR_LENGTH(BgL_resultz00_32)))
							{	/* Llib/socket.scm 438 */
								obj_t BgL_bufz00_2124;

								BgL_bufz00_2124 =
									BGl_getzd2portzd2bufferz00zz__r4_ports_6_10_1z00
									(BGl_string2079z00zz__socketz00, BTRUE, (int) (512L));
								VECTOR_SET(BgL_outbufsz00_35, BgL_iz00_2118, BgL_bufz00_2124);
								{
									long BgL_iz00_3696;

									BgL_iz00_3696 = (BgL_iz00_2118 + 1L);
									BgL_iz00_2118 = BgL_iz00_3696;
									goto BgL_loopz00_2117;
								}
							}
						else
							{	/* Llib/socket.scm 437 */
								((bool_t) 0);
							}
					}
				}
			return
				BINT(bgl_socket_accept_many(BgL_socketz00_31,
					CBOOL(BgL_errpz00_33), BgL_inbufsz00_34, BgL_outbufsz00_35,
					BgL_resultz00_32));
		}

	}



/* _socket-shutdown */
	obj_t BGl__socketzd2shutdownzd2zz__socketz00(obj_t BgL_env1150z00_41,
		obj_t BgL_opt1149z00_40)
	{
		{	/* Llib/socket.scm 454 */
			{	/* Llib/socket.scm 454 */
				obj_t BgL_g1151z00_1380;

				{
					obj_t BgL_auxz00_3701;

					if (VECTORP(BgL_opt1149z00_40))
						{	/* Llib/socket.scm 454 */
							BgL_auxz00_3701 = BgL_opt1149z00_40;
						}
					else
						{
							obj_t BgL_auxz00_3704;

							BgL_auxz00_3704 =
								BGl_typezd2errorzd2zz__errorz00(BGl_string2014z00zz__socketz00,
								BINT(20524L), BGl_string2081z00zz__socketz00,
								BGl_string2026z00zz__socketz00, BgL_opt1149z00_40);
							FAILURE(BgL_auxz00_3704, BFALSE, BFALSE);
						}
					BgL_g1151z00_1380 = VECTOR_REF(BgL_auxz00_3701, 0L);
				}
				{	/* Llib/socket.scm 454 */
					long BgL_aux1153z00_1382;

					{
						obj_t BgL_auxz00_3709;

						if (VECTORP(BgL_opt1149z00_40))
							{	/* Llib/socket.scm 454 */
								BgL_auxz00_3709 = BgL_opt1149z00_40;
							}
						else
							{
								obj_t BgL_auxz00_3712;

								BgL_auxz00_3712 =
									BGl_typezd2errorzd2zz__errorz00
									(BGl_string2014z00zz__socketz00, BINT(20524L),
									BGl_string2081z00zz__socketz00,
									BGl_string2026z00zz__socketz00, BgL_opt1149z00_40);
								FAILURE(BgL_auxz00_3712, BFALSE, BFALSE);
							}
						BgL_aux1153z00_1382 = VECTOR_LENGTH(BgL_auxz00_3709);
					}
					switch (BgL_aux1153z00_1382)
						{
						case 1L:

							{	/* Llib/socket.scm 454 */

								{	/* Llib/socket.scm 454 */
									int BgL_tmpz00_3717;

									{	/* Llib/socket.scm 454 */
										obj_t BgL_auxz00_3718;

										if (SOCKETP(BgL_g1151z00_1380))
											{	/* Llib/socket.scm 454 */
												BgL_auxz00_3718 = BgL_g1151z00_1380;
											}
										else
											{
												obj_t BgL_auxz00_3721;

												BgL_auxz00_3721 =
													BGl_typezd2errorzd2zz__errorz00
													(BGl_string2014z00zz__socketz00, BINT(20524L),
													BGl_string2081z00zz__socketz00,
													BGl_string2012z00zz__socketz00, BgL_g1151z00_1380);
												FAILURE(BgL_auxz00_3721, BFALSE, BFALSE);
											}
										BgL_tmpz00_3717 =
											BGl_socketzd2shutdownzd2zz__socketz00(BgL_auxz00_3718,
											BTRUE);
									}
									return BINT(BgL_tmpz00_3717);
								}
							}
							break;
						case 2L:

							{	/* Llib/socket.scm 454 */
								obj_t BgL_howz00_1384;

								{
									obj_t BgL_auxz00_3727;

									if (VECTORP(BgL_opt1149z00_40))
										{	/* Llib/socket.scm 454 */
											BgL_auxz00_3727 = BgL_opt1149z00_40;
										}
									else
										{
											obj_t BgL_auxz00_3730;

											BgL_auxz00_3730 =
												BGl_typezd2errorzd2zz__errorz00
												(BGl_string2014z00zz__socketz00, BINT(20524L),
												BGl_string2081z00zz__socketz00,
												BGl_string2026z00zz__socketz00, BgL_opt1149z00_40);
											FAILURE(BgL_auxz00_3730, BFALSE, BFALSE);
										}
									BgL_howz00_1384 = VECTOR_REF(BgL_auxz00_3727, 1L);
								}
								{	/* Llib/socket.scm 454 */

									{	/* Llib/socket.scm 454 */
										int BgL_tmpz00_3735;

										{	/* Llib/socket.scm 454 */
											obj_t BgL_auxz00_3736;

											if (SOCKETP(BgL_g1151z00_1380))
												{	/* Llib/socket.scm 454 */
													BgL_auxz00_3736 = BgL_g1151z00_1380;
												}
											else
												{
													obj_t BgL_auxz00_3739;

													BgL_auxz00_3739 =
														BGl_typezd2errorzd2zz__errorz00
														(BGl_string2014z00zz__socketz00, BINT(20524L),
														BGl_string2081z00zz__socketz00,
														BGl_string2012z00zz__socketz00, BgL_g1151z00_1380);
													FAILURE(BgL_auxz00_3739, BFALSE, BFALSE);
												}
											BgL_tmpz00_3735 =
												BGl_socketzd2shutdownzd2zz__socketz00(BgL_auxz00_3736,
												BgL_howz00_1384);
										}
										return BINT(BgL_tmpz00_3735);
									}
								}
							}
							break;
						default:
							return BUNSPEC;
						}
				}
			}
		}

	}



/* socket-shutdown */
	BGL_EXPORTED_DEF int BGl_socketzd2shutdownzd2zz__socketz00(obj_t
		BgL_socketz00_38, obj_t BgL_howz00_39)
	{
		{	/* Llib/socket.scm 454 */
			if ((BgL_howz00_39 == BTRUE))
				{	/* Llib/socket.scm 457 */
					int BgL_rz00_1385;

					BgL_rz00_1385 = socket_shutdown(BgL_socketz00_38, (int) (2L));
					socket_close(BgL_socketz00_38);
					return BgL_rz00_1385;
				}
			else
				{	/* Llib/socket.scm 460 */
					bool_t BgL_test2387z00_3751;

					if ((BgL_howz00_39 == BFALSE))
						{	/* Llib/socket.scm 460 */
							BgL_test2387z00_3751 = ((bool_t) 1);
						}
					else
						{	/* Llib/socket.scm 460 */
							BgL_test2387z00_3751 =
								(BgL_howz00_39 == BGl_symbol2082z00zz__socketz00);
						}
					if (BgL_test2387z00_3751)
						{	/* Llib/socket.scm 460 */
							return socket_shutdown(BgL_socketz00_38, (int) (2L));
						}
					else
						{	/* Llib/socket.scm 460 */
							if ((BgL_howz00_39 == BGl_symbol2084z00zz__socketz00))
								{	/* Llib/socket.scm 462 */
									return socket_shutdown(BgL_socketz00_38, (int) (1L));
								}
							else
								{	/* Llib/socket.scm 462 */
									if ((BgL_howz00_39 == BGl_symbol2086z00zz__socketz00))
										{	/* Llib/socket.scm 464 */
											return socket_shutdown(BgL_socketz00_38, (int) (0L));
										}
									else
										{	/* Llib/socket.scm 464 */
											return
												CINT(BGl_errorz00zz__errorz00
												(BGl_string2088z00zz__socketz00,
													BGl_string2089z00zz__socketz00, BgL_howz00_39));
										}
								}
						}
				}
		}

	}



/* socket-close */
	BGL_EXPORTED_DEF obj_t BGl_socketzd2closezd2zz__socketz00(obj_t
		BgL_socketz00_42)
	{
		{	/* Llib/socket.scm 472 */
			BGL_TAIL return socket_close(BgL_socketz00_42);
		}

	}



/* &socket-close */
	obj_t BGl_z62socketzd2closezb0zz__socketz00(obj_t BgL_envz00_2428,
		obj_t BgL_socketz00_2429)
	{
		{	/* Llib/socket.scm 472 */
			{	/* Llib/socket.scm 473 */
				obj_t BgL_auxz00_3768;

				if (SOCKETP(BgL_socketz00_2429))
					{	/* Llib/socket.scm 473 */
						BgL_auxz00_3768 = BgL_socketz00_2429;
					}
				else
					{
						obj_t BgL_auxz00_3771;

						BgL_auxz00_3771 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2014z00zz__socketz00,
							BINT(21232L), BGl_string2090z00zz__socketz00,
							BGl_string2012z00zz__socketz00, BgL_socketz00_2429);
						FAILURE(BgL_auxz00_3771, BFALSE, BFALSE);
					}
				return BGl_socketzd2closezd2zz__socketz00(BgL_auxz00_3768);
			}
		}

	}



/* host */
	BGL_EXPORTED_DEF obj_t BGl_hostz00zz__socketz00(obj_t BgL_hostnamez00_43)
	{
		{	/* Llib/socket.scm 478 */
			BGl_z52socketzd2initz12z92zz__socketz00();
			BGL_TAIL return bgl_host(BgL_hostnamez00_43);
		}

	}



/* &host */
	obj_t BGl_z62hostz62zz__socketz00(obj_t BgL_envz00_2430,
		obj_t BgL_hostnamez00_2431)
	{
		{	/* Llib/socket.scm 478 */
			{	/* Llib/socket.scm 480 */
				obj_t BgL_auxz00_3778;

				if (STRINGP(BgL_hostnamez00_2431))
					{	/* Llib/socket.scm 480 */
						BgL_auxz00_3778 = BgL_hostnamez00_2431;
					}
				else
					{
						obj_t BgL_auxz00_3781;

						BgL_auxz00_3781 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2014z00zz__socketz00,
							BINT(21540L), BGl_string2091z00zz__socketz00,
							BGl_string2020z00zz__socketz00, BgL_hostnamez00_2431);
						FAILURE(BgL_auxz00_3781, BFALSE, BFALSE);
					}
				return BGl_hostz00zz__socketz00(BgL_auxz00_3778);
			}
		}

	}



/* hostinfo */
	BGL_EXPORTED_DEF obj_t BGl_hostinfoz00zz__socketz00(obj_t BgL_hostnamez00_44)
	{
		{	/* Llib/socket.scm 486 */
			BGl_z52socketzd2initz12z92zz__socketz00();
			BGL_TAIL return bgl_hostinfo(BgL_hostnamez00_44);
		}

	}



/* &hostinfo */
	obj_t BGl_z62hostinfoz62zz__socketz00(obj_t BgL_envz00_2432,
		obj_t BgL_hostnamez00_2433)
	{
		{	/* Llib/socket.scm 486 */
			{	/* Llib/socket.scm 488 */
				obj_t BgL_auxz00_3788;

				if (STRINGP(BgL_hostnamez00_2433))
					{	/* Llib/socket.scm 488 */
						BgL_auxz00_3788 = BgL_hostnamez00_2433;
					}
				else
					{
						obj_t BgL_auxz00_3791;

						BgL_auxz00_3791 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2014z00zz__socketz00,
							BINT(21855L), BGl_string2092z00zz__socketz00,
							BGl_string2020z00zz__socketz00, BgL_hostnamez00_2433);
						FAILURE(BgL_auxz00_3791, BFALSE, BFALSE);
					}
				return BGl_hostinfoz00zz__socketz00(BgL_auxz00_3788);
			}
		}

	}



/* _hostname */
	obj_t BGl__hostnamez00zz__socketz00(obj_t BgL_env1155z00_47,
		obj_t BgL_opt1154z00_46)
	{
		{	/* Llib/socket.scm 494 */
			{	/* Llib/socket.scm 494 */

				{	/* Llib/socket.scm 494 */
					long BgL_aux1157z00_1388;

					{
						obj_t BgL_auxz00_3796;

						if (VECTORP(BgL_opt1154z00_46))
							{	/* Llib/socket.scm 494 */
								BgL_auxz00_3796 = BgL_opt1154z00_46;
							}
						else
							{
								obj_t BgL_auxz00_3799;

								BgL_auxz00_3799 =
									BGl_typezd2errorzd2zz__errorz00
									(BGl_string2014z00zz__socketz00, BINT(22109L),
									BGl_string2093z00zz__socketz00,
									BGl_string2026z00zz__socketz00, BgL_opt1154z00_46);
								FAILURE(BgL_auxz00_3799, BFALSE, BFALSE);
							}
						BgL_aux1157z00_1388 = VECTOR_LENGTH(BgL_auxz00_3796);
					}
					switch (BgL_aux1157z00_1388)
						{
						case 0L:

							{	/* Llib/socket.scm 494 */

								BGl_z52socketzd2initz12z92zz__socketz00();
								return bgl_gethostname();
							}
							break;
						case 1L:

							{	/* Llib/socket.scm 494 */
								obj_t BgL_hostipz00_1390;

								{
									obj_t BgL_auxz00_3806;

									if (VECTORP(BgL_opt1154z00_46))
										{	/* Llib/socket.scm 494 */
											BgL_auxz00_3806 = BgL_opt1154z00_46;
										}
									else
										{
											obj_t BgL_auxz00_3809;

											BgL_auxz00_3809 =
												BGl_typezd2errorzd2zz__errorz00
												(BGl_string2014z00zz__socketz00, BINT(22109L),
												BGl_string2093z00zz__socketz00,
												BGl_string2026z00zz__socketz00, BgL_opt1154z00_46);
											FAILURE(BgL_auxz00_3809, BFALSE, BFALSE);
										}
									BgL_hostipz00_1390 = VECTOR_REF(BgL_auxz00_3806, 0L);
								}
								{	/* Llib/socket.scm 494 */

									BGl_z52socketzd2initz12z92zz__socketz00();
									if (CBOOL(BgL_hostipz00_1390))
										{	/* Llib/socket.scm 497 */
											obj_t BgL_tmpz00_3817;

											if (STRINGP(BgL_hostipz00_1390))
												{	/* Llib/socket.scm 497 */
													BgL_tmpz00_3817 = BgL_hostipz00_1390;
												}
											else
												{
													obj_t BgL_auxz00_3820;

													BgL_auxz00_3820 =
														BGl_typezd2errorzd2zz__errorz00
														(BGl_string2014z00zz__socketz00, BINT(22211L),
														BGl_string2093z00zz__socketz00,
														BGl_string2020z00zz__socketz00, BgL_hostipz00_1390);
													FAILURE(BgL_auxz00_3820, BFALSE, BFALSE);
												}
											return bgl_gethostname_by_address(BgL_tmpz00_3817);
										}
									else
										{	/* Llib/socket.scm 496 */
											return bgl_gethostname();
										}
								}
							}
							break;
						default:
							return BUNSPEC;
						}
				}
			}
		}

	}



/* hostname */
	BGL_EXPORTED_DEF obj_t BGl_hostnamez00zz__socketz00(obj_t BgL_hostipz00_45)
	{
		{	/* Llib/socket.scm 494 */
			BGl_z52socketzd2initz12z92zz__socketz00();
			if (CBOOL(BgL_hostipz00_45))
				{	/* Llib/socket.scm 496 */
					return bgl_gethostname_by_address(BgL_hostipz00_45);
				}
			else
				{	/* Llib/socket.scm 496 */
					return bgl_gethostname();
				}
		}

	}



/* resolv */
	BGL_EXPORTED_DEF obj_t BGl_resolvz00zz__socketz00(obj_t BgL_hostnamez00_48,
		obj_t BgL_typez00_49)
	{
		{	/* Llib/socket.scm 503 */
			{	/* Llib/socket.scm 506 */
				obj_t BgL_arg1381z00_2130;

				BgL_arg1381z00_2130 = SYMBOL_TO_STRING(BgL_typez00_49);
				return bgl_res_query(BgL_hostnamez00_48, BgL_arg1381z00_2130);
			}
		}

	}



/* &resolv */
	obj_t BGl_z62resolvz62zz__socketz00(obj_t BgL_envz00_2434,
		obj_t BgL_hostnamez00_2435, obj_t BgL_typez00_2436)
	{
		{	/* Llib/socket.scm 503 */
			{	/* Llib/socket.scm 506 */
				obj_t BgL_auxz00_3841;
				obj_t BgL_auxz00_3834;

				if (SYMBOLP(BgL_typez00_2436))
					{	/* Llib/socket.scm 506 */
						BgL_auxz00_3841 = BgL_typez00_2436;
					}
				else
					{
						obj_t BgL_auxz00_3844;

						BgL_auxz00_3844 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2014z00zz__socketz00,
							BINT(22554L), BGl_string2094z00zz__socketz00,
							BGl_string2048z00zz__socketz00, BgL_typez00_2436);
						FAILURE(BgL_auxz00_3844, BFALSE, BFALSE);
					}
				if (STRINGP(BgL_hostnamez00_2435))
					{	/* Llib/socket.scm 506 */
						BgL_auxz00_3834 = BgL_hostnamez00_2435;
					}
				else
					{
						obj_t BgL_auxz00_3837;

						BgL_auxz00_3837 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2014z00zz__socketz00,
							BINT(22554L), BGl_string2094z00zz__socketz00,
							BGl_string2020z00zz__socketz00, BgL_hostnamez00_2435);
						FAILURE(BgL_auxz00_3837, BFALSE, BFALSE);
					}
				return BGl_resolvz00zz__socketz00(BgL_auxz00_3834, BgL_auxz00_3841);
			}
		}

	}



/* get-interfaces */
	BGL_EXPORTED_DEF obj_t BGl_getzd2interfaceszd2zz__socketz00(void)
	{
		{	/* Llib/socket.scm 513 */
			BGl_z52socketzd2initz12z92zz__socketz00();
			BGL_TAIL return bgl_gethostinterfaces();
		}

	}



/* &get-interfaces */
	obj_t BGl_z62getzd2interfaceszb0zz__socketz00(obj_t BgL_envz00_2437)
	{
		{	/* Llib/socket.scm 513 */
			return BGl_getzd2interfaceszd2zz__socketz00();
		}

	}



/* get-protocols */
	BGL_EXPORTED_DEF obj_t BGl_getzd2protocolszd2zz__socketz00(void)
	{
		{	/* Llib/socket.scm 521 */
			BGL_TAIL return bgl_getprotoents();
		}

	}



/* &get-protocols */
	obj_t BGl_z62getzd2protocolszb0zz__socketz00(obj_t BgL_envz00_2438)
	{
		{	/* Llib/socket.scm 521 */
			return BGl_getzd2protocolszd2zz__socketz00();
		}

	}



/* get-protocol */
	BGL_EXPORTED_DEF obj_t BGl_getzd2protocolzd2zz__socketz00(obj_t
		BgL_protocolz00_50)
	{
		{	/* Llib/socket.scm 527 */
			if (BGl_integerzf3zf3zz__r4_numbers_6_5_fixnumz00(BgL_protocolz00_50))
				{	/* Llib/socket.scm 529 */
					return bgl_getprotobynumber(CINT(BgL_protocolz00_50));
				}
			else
				{	/* Llib/socket.scm 529 */
					if (STRINGP(BgL_protocolz00_50))
						{	/* Llib/socket.scm 531 */
							return bgl_getprotobyname(BSTRING_TO_STRING(BgL_protocolz00_50));
						}
					else
						{	/* Llib/socket.scm 531 */
							return BFALSE;
						}
				}
		}

	}



/* &get-protocol */
	obj_t BGl_z62getzd2protocolzb0zz__socketz00(obj_t BgL_envz00_2439,
		obj_t BgL_protocolz00_2440)
	{
		{	/* Llib/socket.scm 527 */
			return BGl_getzd2protocolzd2zz__socketz00(BgL_protocolz00_2440);
		}

	}



/* socket-option */
	BGL_EXPORTED_DEF obj_t BGl_socketzd2optionzd2zz__socketz00(obj_t
		BgL_socketz00_51, obj_t BgL_optionz00_52)
	{
		{	/* Llib/socket.scm 539 */
			BGL_TAIL return bgl_getsockopt(BgL_socketz00_51, BgL_optionz00_52);
		}

	}



/* &socket-option */
	obj_t BGl_z62socketzd2optionzb0zz__socketz00(obj_t BgL_envz00_2441,
		obj_t BgL_socketz00_2442, obj_t BgL_optionz00_2443)
	{
		{	/* Llib/socket.scm 539 */
			{	/* Llib/socket.scm 540 */
				obj_t BgL_auxz00_3871;
				obj_t BgL_auxz00_3864;

				if (KEYWORDP(BgL_optionz00_2443))
					{	/* Llib/socket.scm 540 */
						BgL_auxz00_3871 = BgL_optionz00_2443;
					}
				else
					{
						obj_t BgL_auxz00_3874;

						BgL_auxz00_3874 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2014z00zz__socketz00,
							BINT(23881L), BGl_string2095z00zz__socketz00,
							BGl_string2096z00zz__socketz00, BgL_optionz00_2443);
						FAILURE(BgL_auxz00_3874, BFALSE, BFALSE);
					}
				if (SOCKETP(BgL_socketz00_2442))
					{	/* Llib/socket.scm 540 */
						BgL_auxz00_3864 = BgL_socketz00_2442;
					}
				else
					{
						obj_t BgL_auxz00_3867;

						BgL_auxz00_3867 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2014z00zz__socketz00,
							BINT(23881L), BGl_string2095z00zz__socketz00,
							BGl_string2012z00zz__socketz00, BgL_socketz00_2442);
						FAILURE(BgL_auxz00_3867, BFALSE, BFALSE);
					}
				return
					BGl_socketzd2optionzd2zz__socketz00(BgL_auxz00_3864, BgL_auxz00_3871);
			}
		}

	}



/* socket-option-set! */
	BGL_EXPORTED_DEF obj_t BGl_socketzd2optionzd2setz12z12zz__socketz00(obj_t
		BgL_socketz00_53, obj_t BgL_optionz00_54, obj_t BgL_valz00_55)
	{
		{	/* Llib/socket.scm 545 */
			BGL_TAIL return
				bgl_setsockopt(BgL_socketz00_53, BgL_optionz00_54, BgL_valz00_55);
		}

	}



/* &socket-option-set! */
	obj_t BGl_z62socketzd2optionzd2setz12z70zz__socketz00(obj_t BgL_envz00_2444,
		obj_t BgL_socketz00_2445, obj_t BgL_optionz00_2446, obj_t BgL_valz00_2447)
	{
		{	/* Llib/socket.scm 545 */
			{	/* Llib/socket.scm 546 */
				obj_t BgL_auxz00_3887;
				obj_t BgL_auxz00_3880;

				if (KEYWORDP(BgL_optionz00_2446))
					{	/* Llib/socket.scm 546 */
						BgL_auxz00_3887 = BgL_optionz00_2446;
					}
				else
					{
						obj_t BgL_auxz00_3890;

						BgL_auxz00_3890 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2014z00zz__socketz00,
							BINT(24190L), BGl_string2097z00zz__socketz00,
							BGl_string2096z00zz__socketz00, BgL_optionz00_2446);
						FAILURE(BgL_auxz00_3890, BFALSE, BFALSE);
					}
				if (SOCKETP(BgL_socketz00_2445))
					{	/* Llib/socket.scm 546 */
						BgL_auxz00_3880 = BgL_socketz00_2445;
					}
				else
					{
						obj_t BgL_auxz00_3883;

						BgL_auxz00_3883 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2014z00zz__socketz00,
							BINT(24190L), BGl_string2097z00zz__socketz00,
							BGl_string2012z00zz__socketz00, BgL_socketz00_2445);
						FAILURE(BgL_auxz00_3883, BFALSE, BFALSE);
					}
				return
					BGl_socketzd2optionzd2setz12z12zz__socketz00(BgL_auxz00_3880,
					BgL_auxz00_3887, BgL_valz00_2447);
			}
		}

	}



/* datagram-socket? */
	BGL_EXPORTED_DEF bool_t BGl_datagramzd2socketzf3z21zz__socketz00(obj_t
		BgL_objz00_56)
	{
		{	/* Llib/socket.scm 551 */
			return BGL_DATAGRAM_SOCKETP(BgL_objz00_56);
		}

	}



/* &datagram-socket? */
	obj_t BGl_z62datagramzd2socketzf3z43zz__socketz00(obj_t BgL_envz00_2448,
		obj_t BgL_objz00_2449)
	{
		{	/* Llib/socket.scm 551 */
			return BBOOL(BGl_datagramzd2socketzf3z21zz__socketz00(BgL_objz00_2449));
		}

	}



/* datagram-socket-server? */
	BGL_EXPORTED_DEF bool_t
		BGl_datagramzd2socketzd2serverzf3zf3zz__socketz00(obj_t BgL_objz00_57)
	{
		{	/* Llib/socket.scm 557 */
			return BGL_DATAGRAM_SOCKET_SERVERP(BgL_objz00_57);
		}

	}



/* &datagram-socket-server? */
	obj_t BGl_z62datagramzd2socketzd2serverzf3z91zz__socketz00(obj_t
		BgL_envz00_2450, obj_t BgL_objz00_2451)
	{
		{	/* Llib/socket.scm 557 */
			return
				BBOOL(BGl_datagramzd2socketzd2serverzf3zf3zz__socketz00
				(BgL_objz00_2451));
		}

	}



/* datagram-socket-client? */
	BGL_EXPORTED_DEF bool_t
		BGl_datagramzd2socketzd2clientzf3zf3zz__socketz00(obj_t BgL_objz00_58)
	{
		{	/* Llib/socket.scm 563 */
			return BGL_DATAGRAM_SOCKET_CLIENTP(BgL_objz00_58);
		}

	}



/* &datagram-socket-client? */
	obj_t BGl_z62datagramzd2socketzd2clientzf3z91zz__socketz00(obj_t
		BgL_envz00_2452, obj_t BgL_objz00_2453)
	{
		{	/* Llib/socket.scm 563 */
			return
				BBOOL(BGl_datagramzd2socketzd2clientzf3zf3zz__socketz00
				(BgL_objz00_2453));
		}

	}



/* datagram-socket-hostname */
	BGL_EXPORTED_DEF obj_t BGl_datagramzd2socketzd2hostnamez00zz__socketz00(obj_t
		BgL_socketz00_59)
	{
		{	/* Llib/socket.scm 569 */
			return BGL_DATAGRAM_SOCKET_HOSTNAME(BgL_socketz00_59);
		}

	}



/* &datagram-socket-hostname */
	obj_t BGl_z62datagramzd2socketzd2hostnamez62zz__socketz00(obj_t
		BgL_envz00_2454, obj_t BgL_socketz00_2455)
	{
		{	/* Llib/socket.scm 569 */
			{	/* Llib/socket.scm 570 */
				obj_t BgL_auxz00_3905;

				if (BGL_DATAGRAM_SOCKETP(BgL_socketz00_2455))
					{	/* Llib/socket.scm 570 */
						BgL_auxz00_3905 = BgL_socketz00_2455;
					}
				else
					{
						obj_t BgL_auxz00_3908;

						BgL_auxz00_3908 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2014z00zz__socketz00,
							BINT(25394L), BGl_string2098z00zz__socketz00,
							BGl_string2099z00zz__socketz00, BgL_socketz00_2455);
						FAILURE(BgL_auxz00_3908, BFALSE, BFALSE);
					}
				return
					BGl_datagramzd2socketzd2hostnamez00zz__socketz00(BgL_auxz00_3905);
			}
		}

	}



/* datagram-socket-host-address */
	BGL_EXPORTED_DEF obj_t
		BGl_datagramzd2socketzd2hostzd2addresszd2zz__socketz00(obj_t
		BgL_socketz00_60)
	{
		{	/* Llib/socket.scm 575 */
			return BGL_DATAGRAM_SOCKET_HOSTIP(BgL_socketz00_60);
		}

	}



/* &datagram-socket-host-address */
	obj_t BGl_z62datagramzd2socketzd2hostzd2addresszb0zz__socketz00(obj_t
		BgL_envz00_2456, obj_t BgL_socketz00_2457)
	{
		{	/* Llib/socket.scm 575 */
			{	/* Llib/socket.scm 576 */
				obj_t BgL_auxz00_3914;

				if (BGL_DATAGRAM_SOCKETP(BgL_socketz00_2457))
					{	/* Llib/socket.scm 576 */
						BgL_auxz00_3914 = BgL_socketz00_2457;
					}
				else
					{
						obj_t BgL_auxz00_3917;

						BgL_auxz00_3917 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2014z00zz__socketz00,
							BINT(25709L), BGl_string2100z00zz__socketz00,
							BGl_string2099z00zz__socketz00, BgL_socketz00_2457);
						FAILURE(BgL_auxz00_3917, BFALSE, BFALSE);
					}
				return
					BGl_datagramzd2socketzd2hostzd2addresszd2zz__socketz00
					(BgL_auxz00_3914);
			}
		}

	}



/* datagram-socket-port-number */
	BGL_EXPORTED_DEF obj_t
		BGl_datagramzd2socketzd2portzd2numberzd2zz__socketz00(obj_t
		BgL_socketz00_61)
	{
		{	/* Llib/socket.scm 581 */
			return BINT(BGL_DATAGRAM_SOCKET_PORTNUM(BgL_socketz00_61));
		}

	}



/* &datagram-socket-port-number */
	obj_t BGl_z62datagramzd2socketzd2portzd2numberzb0zz__socketz00(obj_t
		BgL_envz00_2458, obj_t BgL_socketz00_2459)
	{
		{	/* Llib/socket.scm 581 */
			{	/* Llib/socket.scm 582 */
				obj_t BgL_auxz00_3924;

				if (BGL_DATAGRAM_SOCKETP(BgL_socketz00_2459))
					{	/* Llib/socket.scm 582 */
						BgL_auxz00_3924 = BgL_socketz00_2459;
					}
				else
					{
						obj_t BgL_auxz00_3927;

						BgL_auxz00_3927 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2014z00zz__socketz00,
							BINT(26021L), BGl_string2101z00zz__socketz00,
							BGl_string2099z00zz__socketz00, BgL_socketz00_2459);
						FAILURE(BgL_auxz00_3927, BFALSE, BFALSE);
					}
				return
					BGl_datagramzd2socketzd2portzd2numberzd2zz__socketz00
					(BgL_auxz00_3924);
			}
		}

	}



/* datagram-socket-output */
	BGL_EXPORTED_DEF obj_t BGl_datagramzd2socketzd2outputz00zz__socketz00(obj_t
		BgL_socketz00_62)
	{
		{	/* Llib/socket.scm 587 */
			{	/* Llib/socket.scm 588 */
				bool_t BgL_test2410z00_3932;

				{	/* Llib/socket.scm 588 */
					obj_t BgL_arg1386z00_2731;

					BgL_arg1386z00_2731 = BGL_DATAGRAM_SOCKET_PORT(BgL_socketz00_62);
					BgL_test2410z00_3932 = OUTPUT_PORTP(BgL_arg1386z00_2731);
				}
				if (BgL_test2410z00_3932)
					{	/* Llib/socket.scm 588 */
						return BGL_DATAGRAM_SOCKET_PORT(BgL_socketz00_62);
					}
				else
					{	/* Llib/socket.scm 588 */
						return
							BGl_errorz00zz__errorz00(BGl_string2102z00zz__socketz00,
							BGl_string2103z00zz__socketz00, BgL_socketz00_62);
					}
			}
		}

	}



/* &datagram-socket-output */
	obj_t BGl_z62datagramzd2socketzd2outputz62zz__socketz00(obj_t BgL_envz00_2460,
		obj_t BgL_socketz00_2461)
	{
		{	/* Llib/socket.scm 587 */
			{	/* Llib/socket.scm 588 */
				obj_t BgL_auxz00_3937;

				if (BGL_DATAGRAM_SOCKETP(BgL_socketz00_2461))
					{	/* Llib/socket.scm 588 */
						BgL_auxz00_3937 = BgL_socketz00_2461;
					}
				else
					{
						obj_t BgL_auxz00_3940;

						BgL_auxz00_3940 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2014z00zz__socketz00,
							BINT(26333L), BGl_string2104z00zz__socketz00,
							BGl_string2099z00zz__socketz00, BgL_socketz00_2461);
						FAILURE(BgL_auxz00_3940, BFALSE, BFALSE);
					}
				return BGl_datagramzd2socketzd2outputz00zz__socketz00(BgL_auxz00_3937);
			}
		}

	}



/* datagram-socket-input */
	BGL_EXPORTED_DEF obj_t BGl_datagramzd2socketzd2inputz00zz__socketz00(obj_t
		BgL_socketz00_63)
	{
		{	/* Llib/socket.scm 596 */
			{	/* Llib/socket.scm 597 */
				bool_t BgL_test2412z00_3945;

				{	/* Llib/socket.scm 597 */
					obj_t BgL_arg1389z00_2732;

					BgL_arg1389z00_2732 = BGL_DATAGRAM_SOCKET_PORT(BgL_socketz00_63);
					BgL_test2412z00_3945 = INPUT_PORTP(BgL_arg1389z00_2732);
				}
				if (BgL_test2412z00_3945)
					{	/* Llib/socket.scm 597 */
						return BGL_DATAGRAM_SOCKET_PORT(BgL_socketz00_63);
					}
				else
					{	/* Llib/socket.scm 597 */
						return
							BGl_errorz00zz__errorz00(BGl_string2105z00zz__socketz00,
							BGl_string2106z00zz__socketz00, BgL_socketz00_63);
					}
			}
		}

	}



/* &datagram-socket-input */
	obj_t BGl_z62datagramzd2socketzd2inputz62zz__socketz00(obj_t BgL_envz00_2462,
		obj_t BgL_socketz00_2463)
	{
		{	/* Llib/socket.scm 596 */
			{	/* Llib/socket.scm 597 */
				obj_t BgL_auxz00_3950;

				if (BGL_DATAGRAM_SOCKETP(BgL_socketz00_2463))
					{	/* Llib/socket.scm 597 */
						BgL_auxz00_3950 = BgL_socketz00_2463;
					}
				else
					{
						obj_t BgL_auxz00_3953;

						BgL_auxz00_3953 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2014z00zz__socketz00,
							BINT(26782L), BGl_string2107z00zz__socketz00,
							BGl_string2099z00zz__socketz00, BgL_socketz00_2463);
						FAILURE(BgL_auxz00_3953, BFALSE, BFALSE);
					}
				return BGl_datagramzd2socketzd2inputz00zz__socketz00(BgL_auxz00_3950);
			}
		}

	}



/* _make-datagram-server-socket */
	obj_t BGl__makezd2datagramzd2serverzd2socketzd2zz__socketz00(obj_t
		BgL_env1159z00_67, obj_t BgL_opt1158z00_66)
	{
		{	/* Llib/socket.scm 605 */
			{	/* Llib/socket.scm 605 */

				{	/* Llib/socket.scm 605 */
					long BgL_aux1161z00_2733;

					{
						obj_t BgL_auxz00_3958;

						if (VECTORP(BgL_opt1158z00_66))
							{	/* Llib/socket.scm 605 */
								BgL_auxz00_3958 = BgL_opt1158z00_66;
							}
						else
							{
								obj_t BgL_auxz00_3961;

								BgL_auxz00_3961 =
									BGl_typezd2errorzd2zz__errorz00
									(BGl_string2014z00zz__socketz00, BINT(27179L),
									BGl_string2108z00zz__socketz00,
									BGl_string2026z00zz__socketz00, BgL_opt1158z00_66);
								FAILURE(BgL_auxz00_3961, BFALSE, BFALSE);
							}
						BgL_aux1161z00_2733 = VECTOR_LENGTH(BgL_auxz00_3958);
					}
					switch (BgL_aux1161z00_2733)
						{
						case 0L:

							{	/* Llib/socket.scm 605 */
								obj_t BgL_domainz00_2734;

								BgL_domainz00_2734 = BGl_symbol2027z00zz__socketz00;
								{	/* Llib/socket.scm 605 */

									{	/* Llib/socket.scm 605 */
										obj_t BgL_res1776z00_2735;

										BGl_z52socketzd2initz12z92zz__socketz00();
										{	/* Llib/socket.scm 607 */
											bool_t BgL_test2415z00_3967;

											{	/* Llib/socket.scm 607 */
												bool_t BgL__ortest_1053z00_2736;

												BgL__ortest_1053z00_2736 =
													(BgL_domainz00_2734 ==
													BGl_symbol2027z00zz__socketz00);
												if (BgL__ortest_1053z00_2736)
													{	/* Llib/socket.scm 607 */
														BgL_test2415z00_3967 = BgL__ortest_1053z00_2736;
													}
												else
													{	/* Llib/socket.scm 607 */
														BgL_test2415z00_3967 =
															(BgL_domainz00_2734 ==
															BGl_symbol2044z00zz__socketz00);
													}
											}
											if (BgL_test2415z00_3967)
												{	/* Llib/socket.scm 609 */
													obj_t BgL_tmpz00_3971;

													if (SYMBOLP(BgL_domainz00_2734))
														{	/* Llib/socket.scm 609 */
															BgL_tmpz00_3971 = BgL_domainz00_2734;
														}
													else
														{
															obj_t BgL_auxz00_3975;

															BgL_auxz00_3975 =
																BGl_typezd2errorzd2zz__errorz00
																(BGl_string2014z00zz__socketz00, BINT(27356L),
																BGl_string2108z00zz__socketz00,
																BGl_string2048z00zz__socketz00,
																BgL_domainz00_2734);
															FAILURE(BgL_auxz00_3975, BFALSE, BFALSE);
														}
													BgL_res1776z00_2735 =
														bgl_make_datagram_server_socket(
														(int) (0L), BgL_tmpz00_3971);
												}
											else
												{	/* Llib/socket.scm 611 */
													obj_t BgL_aux1935z00_2737;

													BgL_aux1935z00_2737 =
														BGl_errorz00zz__errorz00
														(BGl_string2109z00zz__socketz00,
														BGl_string2060z00zz__socketz00, BgL_domainz00_2734);
													if (BGL_DATAGRAM_SOCKETP(BgL_aux1935z00_2737))
														{	/* Llib/socket.scm 611 */
															BgL_res1776z00_2735 = BgL_aux1935z00_2737;
														}
													else
														{
															obj_t BgL_auxz00_3983;

															BgL_auxz00_3983 =
																BGl_typezd2errorzd2zz__errorz00
																(BGl_string2014z00zz__socketz00, BINT(27384L),
																BGl_string2108z00zz__socketz00,
																BGl_string2099z00zz__socketz00,
																BgL_aux1935z00_2737);
															FAILURE(BgL_auxz00_3983, BFALSE, BFALSE);
														}
												}
										}
										return BgL_res1776z00_2735;
									}
								}
							}
							break;
						case 1L:

							{	/* Llib/socket.scm 605 */
								obj_t BgL_portz00_2738;

								{
									obj_t BgL_auxz00_3987;

									if (VECTORP(BgL_opt1158z00_66))
										{	/* Llib/socket.scm 605 */
											BgL_auxz00_3987 = BgL_opt1158z00_66;
										}
									else
										{
											obj_t BgL_auxz00_3990;

											BgL_auxz00_3990 =
												BGl_typezd2errorzd2zz__errorz00
												(BGl_string2014z00zz__socketz00, BINT(27179L),
												BGl_string2108z00zz__socketz00,
												BGl_string2026z00zz__socketz00, BgL_opt1158z00_66);
											FAILURE(BgL_auxz00_3990, BFALSE, BFALSE);
										}
									BgL_portz00_2738 = VECTOR_REF(BgL_auxz00_3987, 0L);
								}
								{	/* Llib/socket.scm 605 */
									obj_t BgL_domainz00_2739;

									BgL_domainz00_2739 = BGl_symbol2027z00zz__socketz00;
									{	/* Llib/socket.scm 605 */

										{	/* Llib/socket.scm 605 */
											obj_t BgL_res1777z00_2740;

											BGl_z52socketzd2initz12z92zz__socketz00();
											{	/* Llib/socket.scm 607 */
												bool_t BgL_test2420z00_3996;

												{	/* Llib/socket.scm 607 */
													bool_t BgL__ortest_1053z00_2741;

													BgL__ortest_1053z00_2741 =
														(BgL_domainz00_2739 ==
														BGl_symbol2027z00zz__socketz00);
													if (BgL__ortest_1053z00_2741)
														{	/* Llib/socket.scm 607 */
															BgL_test2420z00_3996 = BgL__ortest_1053z00_2741;
														}
													else
														{	/* Llib/socket.scm 607 */
															BgL_test2420z00_3996 =
																(BgL_domainz00_2739 ==
																BGl_symbol2044z00zz__socketz00);
														}
												}
												if (BgL_test2420z00_3996)
													{	/* Llib/socket.scm 609 */
														obj_t BgL_auxz00_4009;
														int BgL_tmpz00_4000;

														if (SYMBOLP(BgL_domainz00_2739))
															{	/* Llib/socket.scm 609 */
																BgL_auxz00_4009 = BgL_domainz00_2739;
															}
														else
															{
																obj_t BgL_auxz00_4012;

																BgL_auxz00_4012 =
																	BGl_typezd2errorzd2zz__errorz00
																	(BGl_string2014z00zz__socketz00, BINT(27356L),
																	BGl_string2108z00zz__socketz00,
																	BGl_string2048z00zz__socketz00,
																	BgL_domainz00_2739);
																FAILURE(BgL_auxz00_4012, BFALSE, BFALSE);
															}
														{	/* Llib/socket.scm 609 */
															obj_t BgL_tmpz00_4001;

															if (INTEGERP(BgL_portz00_2738))
																{	/* Llib/socket.scm 609 */
																	BgL_tmpz00_4001 = BgL_portz00_2738;
																}
															else
																{
																	obj_t BgL_auxz00_4004;

																	BgL_auxz00_4004 =
																		BGl_typezd2errorzd2zz__errorz00
																		(BGl_string2014z00zz__socketz00,
																		BINT(27351L),
																		BGl_string2108z00zz__socketz00,
																		BGl_string2042z00zz__socketz00,
																		BgL_portz00_2738);
																	FAILURE(BgL_auxz00_4004, BFALSE, BFALSE);
																}
															BgL_tmpz00_4000 = CINT(BgL_tmpz00_4001);
														}
														BgL_res1777z00_2740 =
															bgl_make_datagram_server_socket(BgL_tmpz00_4000,
															BgL_auxz00_4009);
													}
												else
													{	/* Llib/socket.scm 611 */
														obj_t BgL_aux1942z00_2742;

														BgL_aux1942z00_2742 =
															BGl_errorz00zz__errorz00
															(BGl_string2109z00zz__socketz00,
															BGl_string2060z00zz__socketz00,
															BgL_domainz00_2739);
														if (BGL_DATAGRAM_SOCKETP(BgL_aux1942z00_2742))
															{	/* Llib/socket.scm 611 */
																BgL_res1777z00_2740 = BgL_aux1942z00_2742;
															}
														else
															{
																obj_t BgL_auxz00_4020;

																BgL_auxz00_4020 =
																	BGl_typezd2errorzd2zz__errorz00
																	(BGl_string2014z00zz__socketz00, BINT(27384L),
																	BGl_string2108z00zz__socketz00,
																	BGl_string2099z00zz__socketz00,
																	BgL_aux1942z00_2742);
																FAILURE(BgL_auxz00_4020, BFALSE, BFALSE);
															}
													}
											}
											return BgL_res1777z00_2740;
										}
									}
								}
							}
							break;
						case 2L:

							{	/* Llib/socket.scm 605 */
								obj_t BgL_portz00_2743;

								{
									obj_t BgL_auxz00_4024;

									if (VECTORP(BgL_opt1158z00_66))
										{	/* Llib/socket.scm 605 */
											BgL_auxz00_4024 = BgL_opt1158z00_66;
										}
									else
										{
											obj_t BgL_auxz00_4027;

											BgL_auxz00_4027 =
												BGl_typezd2errorzd2zz__errorz00
												(BGl_string2014z00zz__socketz00, BINT(27179L),
												BGl_string2108z00zz__socketz00,
												BGl_string2026z00zz__socketz00, BgL_opt1158z00_66);
											FAILURE(BgL_auxz00_4027, BFALSE, BFALSE);
										}
									BgL_portz00_2743 = VECTOR_REF(BgL_auxz00_4024, 0L);
								}
								{	/* Llib/socket.scm 605 */
									obj_t BgL_domainz00_2744;

									{
										obj_t BgL_auxz00_4032;

										if (VECTORP(BgL_opt1158z00_66))
											{	/* Llib/socket.scm 605 */
												BgL_auxz00_4032 = BgL_opt1158z00_66;
											}
										else
											{
												obj_t BgL_auxz00_4035;

												BgL_auxz00_4035 =
													BGl_typezd2errorzd2zz__errorz00
													(BGl_string2014z00zz__socketz00, BINT(27179L),
													BGl_string2108z00zz__socketz00,
													BGl_string2026z00zz__socketz00, BgL_opt1158z00_66);
												FAILURE(BgL_auxz00_4035, BFALSE, BFALSE);
											}
										BgL_domainz00_2744 = VECTOR_REF(BgL_auxz00_4032, 1L);
									}
									{	/* Llib/socket.scm 605 */

										{	/* Llib/socket.scm 605 */
											obj_t BgL_res1778z00_2745;

											BGl_z52socketzd2initz12z92zz__socketz00();
											{	/* Llib/socket.scm 607 */
												bool_t BgL_test2427z00_4041;

												{	/* Llib/socket.scm 607 */
													bool_t BgL__ortest_1053z00_2746;

													BgL__ortest_1053z00_2746 =
														(BgL_domainz00_2744 ==
														BGl_symbol2027z00zz__socketz00);
													if (BgL__ortest_1053z00_2746)
														{	/* Llib/socket.scm 607 */
															BgL_test2427z00_4041 = BgL__ortest_1053z00_2746;
														}
													else
														{	/* Llib/socket.scm 607 */
															BgL_test2427z00_4041 =
																(BgL_domainz00_2744 ==
																BGl_symbol2044z00zz__socketz00);
														}
												}
												if (BgL_test2427z00_4041)
													{	/* Llib/socket.scm 609 */
														obj_t BgL_auxz00_4054;
														int BgL_tmpz00_4045;

														if (SYMBOLP(BgL_domainz00_2744))
															{	/* Llib/socket.scm 609 */
																BgL_auxz00_4054 = BgL_domainz00_2744;
															}
														else
															{
																obj_t BgL_auxz00_4057;

																BgL_auxz00_4057 =
																	BGl_typezd2errorzd2zz__errorz00
																	(BGl_string2014z00zz__socketz00, BINT(27356L),
																	BGl_string2108z00zz__socketz00,
																	BGl_string2048z00zz__socketz00,
																	BgL_domainz00_2744);
																FAILURE(BgL_auxz00_4057, BFALSE, BFALSE);
															}
														{	/* Llib/socket.scm 609 */
															obj_t BgL_tmpz00_4046;

															if (INTEGERP(BgL_portz00_2743))
																{	/* Llib/socket.scm 609 */
																	BgL_tmpz00_4046 = BgL_portz00_2743;
																}
															else
																{
																	obj_t BgL_auxz00_4049;

																	BgL_auxz00_4049 =
																		BGl_typezd2errorzd2zz__errorz00
																		(BGl_string2014z00zz__socketz00,
																		BINT(27351L),
																		BGl_string2108z00zz__socketz00,
																		BGl_string2042z00zz__socketz00,
																		BgL_portz00_2743);
																	FAILURE(BgL_auxz00_4049, BFALSE, BFALSE);
																}
															BgL_tmpz00_4045 = CINT(BgL_tmpz00_4046);
														}
														BgL_res1778z00_2745 =
															bgl_make_datagram_server_socket(BgL_tmpz00_4045,
															BgL_auxz00_4054);
													}
												else
													{	/* Llib/socket.scm 611 */
														obj_t BgL_aux1951z00_2747;

														BgL_aux1951z00_2747 =
															BGl_errorz00zz__errorz00
															(BGl_string2109z00zz__socketz00,
															BGl_string2060z00zz__socketz00,
															BgL_domainz00_2744);
														if (BGL_DATAGRAM_SOCKETP(BgL_aux1951z00_2747))
															{	/* Llib/socket.scm 611 */
																BgL_res1778z00_2745 = BgL_aux1951z00_2747;
															}
														else
															{
																obj_t BgL_auxz00_4065;

																BgL_auxz00_4065 =
																	BGl_typezd2errorzd2zz__errorz00
																	(BGl_string2014z00zz__socketz00, BINT(27384L),
																	BGl_string2108z00zz__socketz00,
																	BGl_string2099z00zz__socketz00,
																	BgL_aux1951z00_2747);
																FAILURE(BgL_auxz00_4065, BFALSE, BFALSE);
															}
													}
											}
											return BgL_res1778z00_2745;
										}
									}
								}
							}
							break;
						default:
							return BUNSPEC;
						}
				}
			}
		}

	}



/* make-datagram-server-socket */
	BGL_EXPORTED_DEF obj_t
		BGl_makezd2datagramzd2serverzd2socketzd2zz__socketz00(obj_t BgL_portz00_64,
		obj_t BgL_domainz00_65)
	{
		{	/* Llib/socket.scm 605 */
			BGl_z52socketzd2initz12z92zz__socketz00();
			{	/* Llib/socket.scm 607 */
				bool_t BgL_test2432z00_4071;

				{	/* Llib/socket.scm 607 */
					bool_t BgL__ortest_1053z00_2748;

					BgL__ortest_1053z00_2748 =
						(BgL_domainz00_65 == BGl_symbol2027z00zz__socketz00);
					if (BgL__ortest_1053z00_2748)
						{	/* Llib/socket.scm 607 */
							BgL_test2432z00_4071 = BgL__ortest_1053z00_2748;
						}
					else
						{	/* Llib/socket.scm 607 */
							BgL_test2432z00_4071 =
								(BgL_domainz00_65 == BGl_symbol2044z00zz__socketz00);
						}
				}
				if (BgL_test2432z00_4071)
					{	/* Llib/socket.scm 607 */
						return
							bgl_make_datagram_server_socket(CINT(BgL_portz00_64),
							BgL_domainz00_65);
					}
				else
					{	/* Llib/socket.scm 607 */
						return
							BGl_errorz00zz__errorz00(BGl_string2109z00zz__socketz00,
							BGl_string2060z00zz__socketz00, BgL_domainz00_65);
					}
			}
		}

	}



/* _make-datagram-unbound-socket */
	obj_t BGl__makezd2datagramzd2unboundzd2socketzd2zz__socketz00(obj_t
		BgL_env1163z00_70, obj_t BgL_opt1162z00_69)
	{
		{	/* Llib/socket.scm 616 */
			{	/* Llib/socket.scm 616 */

				{	/* Llib/socket.scm 616 */
					long BgL_aux1165z00_2749;

					{
						obj_t BgL_auxz00_4078;

						if (VECTORP(BgL_opt1162z00_69))
							{	/* Llib/socket.scm 616 */
								BgL_auxz00_4078 = BgL_opt1162z00_69;
							}
						else
							{
								obj_t BgL_auxz00_4081;

								BgL_auxz00_4081 =
									BGl_typezd2errorzd2zz__errorz00
									(BGl_string2014z00zz__socketz00, BINT(27676L),
									BGl_string2110z00zz__socketz00,
									BGl_string2026z00zz__socketz00, BgL_opt1162z00_69);
								FAILURE(BgL_auxz00_4081, BFALSE, BFALSE);
							}
						BgL_aux1165z00_2749 = VECTOR_LENGTH(BgL_auxz00_4078);
					}
					switch (BgL_aux1165z00_2749)
						{
						case 0L:

							{	/* Llib/socket.scm 616 */
								obj_t BgL_domainz00_2750;

								BgL_domainz00_2750 = BGl_symbol2027z00zz__socketz00;
								{	/* Llib/socket.scm 616 */

									{	/* Llib/socket.scm 616 */
										obj_t BgL_res1779z00_2751;

										BGl_z52socketzd2initz12z92zz__socketz00();
										{	/* Llib/socket.scm 618 */
											bool_t BgL_test2435z00_4087;

											{	/* Llib/socket.scm 618 */
												bool_t BgL__ortest_1056z00_2752;

												BgL__ortest_1056z00_2752 =
													(BgL_domainz00_2750 ==
													BGl_symbol2027z00zz__socketz00);
												if (BgL__ortest_1056z00_2752)
													{	/* Llib/socket.scm 618 */
														BgL_test2435z00_4087 = BgL__ortest_1056z00_2752;
													}
												else
													{	/* Llib/socket.scm 618 */
														BgL_test2435z00_4087 =
															(BgL_domainz00_2750 ==
															BGl_symbol2044z00zz__socketz00);
													}
											}
											if (BgL_test2435z00_4087)
												{	/* Llib/socket.scm 618 */
													BgL_res1779z00_2751 =
														bgl_make_datagram_unbound_socket
														(BgL_domainz00_2750);
												}
											else
												{	/* Llib/socket.scm 622 */
													obj_t BgL_aux1955z00_2753;

													BgL_aux1955z00_2753 =
														BGl_errorz00zz__errorz00
														(BGl_string2111z00zz__socketz00,
														BGl_string2060z00zz__socketz00, BgL_domainz00_2750);
													if (BGL_DATAGRAM_SOCKETP(BgL_aux1955z00_2753))
														{	/* Llib/socket.scm 622 */
															BgL_res1779z00_2751 = BgL_aux1955z00_2753;
														}
													else
														{
															obj_t BgL_auxz00_4095;

															BgL_auxz00_4095 =
																BGl_typezd2errorzd2zz__errorz00
																(BGl_string2014z00zz__socketz00, BINT(27877L),
																BGl_string2110z00zz__socketz00,
																BGl_string2099z00zz__socketz00,
																BgL_aux1955z00_2753);
															FAILURE(BgL_auxz00_4095, BFALSE, BFALSE);
														}
												}
										}
										return BgL_res1779z00_2751;
									}
								}
							}
							break;
						case 1L:

							{	/* Llib/socket.scm 616 */
								obj_t BgL_domainz00_2754;

								{
									obj_t BgL_auxz00_4099;

									if (VECTORP(BgL_opt1162z00_69))
										{	/* Llib/socket.scm 616 */
											BgL_auxz00_4099 = BgL_opt1162z00_69;
										}
									else
										{
											obj_t BgL_auxz00_4102;

											BgL_auxz00_4102 =
												BGl_typezd2errorzd2zz__errorz00
												(BGl_string2014z00zz__socketz00, BINT(27676L),
												BGl_string2110z00zz__socketz00,
												BGl_string2026z00zz__socketz00, BgL_opt1162z00_69);
											FAILURE(BgL_auxz00_4102, BFALSE, BFALSE);
										}
									BgL_domainz00_2754 = VECTOR_REF(BgL_auxz00_4099, 0L);
								}
								{	/* Llib/socket.scm 616 */

									{	/* Llib/socket.scm 616 */
										obj_t BgL_res1780z00_2755;

										{	/* Llib/socket.scm 616 */
											obj_t BgL_domainz00_2756;

											if (SYMBOLP(BgL_domainz00_2754))
												{	/* Llib/socket.scm 616 */
													BgL_domainz00_2756 = BgL_domainz00_2754;
												}
											else
												{
													obj_t BgL_auxz00_4109;

													BgL_auxz00_4109 =
														BGl_typezd2errorzd2zz__errorz00
														(BGl_string2014z00zz__socketz00, BINT(27676L),
														BGl_string2110z00zz__socketz00,
														BGl_string2048z00zz__socketz00, BgL_domainz00_2754);
													FAILURE(BgL_auxz00_4109, BFALSE, BFALSE);
												}
											BGl_z52socketzd2initz12z92zz__socketz00();
											{	/* Llib/socket.scm 618 */
												bool_t BgL_test2440z00_4114;

												{	/* Llib/socket.scm 618 */
													bool_t BgL__ortest_1056z00_2757;

													BgL__ortest_1056z00_2757 =
														(BgL_domainz00_2756 ==
														BGl_symbol2027z00zz__socketz00);
													if (BgL__ortest_1056z00_2757)
														{	/* Llib/socket.scm 618 */
															BgL_test2440z00_4114 = BgL__ortest_1056z00_2757;
														}
													else
														{	/* Llib/socket.scm 618 */
															BgL_test2440z00_4114 =
																(BgL_domainz00_2756 ==
																BGl_symbol2044z00zz__socketz00);
														}
												}
												if (BgL_test2440z00_4114)
													{	/* Llib/socket.scm 618 */
														BgL_res1780z00_2755 =
															bgl_make_datagram_unbound_socket
															(BgL_domainz00_2756);
													}
												else
													{	/* Llib/socket.scm 622 */
														obj_t BgL_aux1961z00_2758;

														BgL_aux1961z00_2758 =
															BGl_errorz00zz__errorz00
															(BGl_string2111z00zz__socketz00,
															BGl_string2060z00zz__socketz00,
															BgL_domainz00_2756);
														if (BGL_DATAGRAM_SOCKETP(BgL_aux1961z00_2758))
															{	/* Llib/socket.scm 622 */
																BgL_res1780z00_2755 = BgL_aux1961z00_2758;
															}
														else
															{
																obj_t BgL_auxz00_4122;

																BgL_auxz00_4122 =
																	BGl_typezd2errorzd2zz__errorz00
																	(BGl_string2014z00zz__socketz00, BINT(27877L),
																	BGl_string2110z00zz__socketz00,
																	BGl_string2099z00zz__socketz00,
																	BgL_aux1961z00_2758);
																FAILURE(BgL_auxz00_4122, BFALSE, BFALSE);
															}
													}
											}
										}
										return BgL_res1780z00_2755;
									}
								}
							}
							break;
						default:
							return BUNSPEC;
						}
				}
			}
		}

	}



/* make-datagram-unbound-socket */
	BGL_EXPORTED_DEF obj_t
		BGl_makezd2datagramzd2unboundzd2socketzd2zz__socketz00(obj_t
		BgL_domainz00_68)
	{
		{	/* Llib/socket.scm 616 */
			BGl_z52socketzd2initz12z92zz__socketz00();
			{	/* Llib/socket.scm 618 */
				bool_t BgL_test2443z00_4128;

				{	/* Llib/socket.scm 618 */
					bool_t BgL__ortest_1056z00_2759;

					BgL__ortest_1056z00_2759 =
						(BgL_domainz00_68 == BGl_symbol2027z00zz__socketz00);
					if (BgL__ortest_1056z00_2759)
						{	/* Llib/socket.scm 618 */
							BgL_test2443z00_4128 = BgL__ortest_1056z00_2759;
						}
					else
						{	/* Llib/socket.scm 618 */
							BgL_test2443z00_4128 =
								(BgL_domainz00_68 == BGl_symbol2044z00zz__socketz00);
						}
				}
				if (BgL_test2443z00_4128)
					{	/* Llib/socket.scm 618 */
						BGL_TAIL return bgl_make_datagram_unbound_socket(BgL_domainz00_68);
					}
				else
					{	/* Llib/socket.scm 618 */
						return
							BGl_errorz00zz__errorz00(BGl_string2111z00zz__socketz00,
							BGl_string2060z00zz__socketz00, BgL_domainz00_68);
					}
			}
		}

	}



/* _make-datagram-client-socket */
	obj_t BGl__makezd2datagramzd2clientzd2socketzd2zz__socketz00(obj_t
		BgL_env1167z00_76, obj_t BgL_opt1166z00_75)
	{
		{	/* Llib/socket.scm 627 */
			{	/* Llib/socket.scm 627 */
				obj_t BgL_g1168z00_2760;
				obj_t BgL_g1169z00_2761;

				{
					obj_t BgL_auxz00_4134;

					if (VECTORP(BgL_opt1166z00_75))
						{	/* Llib/socket.scm 627 */
							BgL_auxz00_4134 = BgL_opt1166z00_75;
						}
					else
						{
							obj_t BgL_auxz00_4137;

							BgL_auxz00_4137 =
								BGl_typezd2errorzd2zz__errorz00(BGl_string2014z00zz__socketz00,
								BINT(28170L), BGl_string2112z00zz__socketz00,
								BGl_string2026z00zz__socketz00, BgL_opt1166z00_75);
							FAILURE(BgL_auxz00_4137, BFALSE, BFALSE);
						}
					BgL_g1168z00_2760 = VECTOR_REF(BgL_auxz00_4134, 0L);
				}
				{
					obj_t BgL_auxz00_4142;

					if (VECTORP(BgL_opt1166z00_75))
						{	/* Llib/socket.scm 627 */
							BgL_auxz00_4142 = BgL_opt1166z00_75;
						}
					else
						{
							obj_t BgL_auxz00_4145;

							BgL_auxz00_4145 =
								BGl_typezd2errorzd2zz__errorz00(BGl_string2014z00zz__socketz00,
								BINT(28170L), BGl_string2112z00zz__socketz00,
								BGl_string2026z00zz__socketz00, BgL_opt1166z00_75);
							FAILURE(BgL_auxz00_4145, BFALSE, BFALSE);
						}
					BgL_g1169z00_2761 = VECTOR_REF(BgL_auxz00_4142, 1L);
				}
				{	/* Llib/socket.scm 627 */
					long BgL_aux1171z00_2762;

					{
						obj_t BgL_auxz00_4150;

						if (VECTORP(BgL_opt1166z00_75))
							{	/* Llib/socket.scm 627 */
								BgL_auxz00_4150 = BgL_opt1166z00_75;
							}
						else
							{
								obj_t BgL_auxz00_4153;

								BgL_auxz00_4153 =
									BGl_typezd2errorzd2zz__errorz00
									(BGl_string2014z00zz__socketz00, BINT(28170L),
									BGl_string2112z00zz__socketz00,
									BGl_string2026z00zz__socketz00, BgL_opt1166z00_75);
								FAILURE(BgL_auxz00_4153, BFALSE, BFALSE);
							}
						BgL_aux1171z00_2762 = VECTOR_LENGTH(BgL_auxz00_4150);
					}
					switch (BgL_aux1171z00_2762)
						{
						case 2L:

							{	/* Llib/socket.scm 627 */
								obj_t BgL_domainz00_2763;

								BgL_domainz00_2763 = BGl_symbol2027z00zz__socketz00;
								{	/* Llib/socket.scm 627 */

									{	/* Llib/socket.scm 627 */
										obj_t BgL_res1781z00_2764;

										{	/* Llib/socket.scm 627 */
											obj_t BgL_hostnamez00_2765;
											int BgL_portz00_2766;

											if (STRINGP(BgL_g1168z00_2760))
												{	/* Llib/socket.scm 627 */
													BgL_hostnamez00_2765 = BgL_g1168z00_2760;
												}
											else
												{
													obj_t BgL_auxz00_4160;

													BgL_auxz00_4160 =
														BGl_typezd2errorzd2zz__errorz00
														(BGl_string2014z00zz__socketz00, BINT(28170L),
														BGl_string2112z00zz__socketz00,
														BGl_string2020z00zz__socketz00, BgL_g1168z00_2760);
													FAILURE(BgL_auxz00_4160, BFALSE, BFALSE);
												}
											{	/* Llib/socket.scm 627 */
												obj_t BgL_tmpz00_4164;

												if (INTEGERP(BgL_g1169z00_2761))
													{	/* Llib/socket.scm 627 */
														BgL_tmpz00_4164 = BgL_g1169z00_2761;
													}
												else
													{
														obj_t BgL_auxz00_4167;

														BgL_auxz00_4167 =
															BGl_typezd2errorzd2zz__errorz00
															(BGl_string2014z00zz__socketz00, BINT(28170L),
															BGl_string2112z00zz__socketz00,
															BGl_string2042z00zz__socketz00,
															BgL_g1169z00_2761);
														FAILURE(BgL_auxz00_4167, BFALSE, BFALSE);
													}
												BgL_portz00_2766 = CINT(BgL_tmpz00_4164);
											}
											BGl_z52socketzd2initz12z92zz__socketz00();
											{	/* Llib/socket.scm 629 */
												bool_t BgL_test2450z00_4173;

												{	/* Llib/socket.scm 629 */
													bool_t BgL__ortest_1059z00_2767;

													BgL__ortest_1059z00_2767 =
														(BgL_domainz00_2763 ==
														BGl_symbol2027z00zz__socketz00);
													if (BgL__ortest_1059z00_2767)
														{	/* Llib/socket.scm 629 */
															BgL_test2450z00_4173 = BgL__ortest_1059z00_2767;
														}
													else
														{	/* Llib/socket.scm 629 */
															bool_t BgL__ortest_1060z00_2768;

															BgL__ortest_1060z00_2768 =
																(BgL_domainz00_2763 ==
																BGl_symbol2044z00zz__socketz00);
															if (BgL__ortest_1060z00_2768)
																{	/* Llib/socket.scm 629 */
																	BgL_test2450z00_4173 =
																		BgL__ortest_1060z00_2768;
																}
															else
																{	/* Llib/socket.scm 629 */
																	BgL_test2450z00_4173 =
																		(BgL_domainz00_2763 ==
																		BGl_symbol2046z00zz__socketz00);
																}
														}
												}
												if (BgL_test2450z00_4173)
													{	/* Llib/socket.scm 629 */
														BgL_res1781z00_2764 =
															bgl_make_datagram_client_socket
															(BgL_hostnamez00_2765, BgL_portz00_2766,
															((bool_t) 0), BgL_domainz00_2763);
													}
												else
													{	/* Llib/socket.scm 633 */
														obj_t BgL_aux1972z00_2769;

														BgL_aux1972z00_2769 =
															BGl_errorz00zz__errorz00
															(BGl_string2113z00zz__socketz00,
															BGl_string2060z00zz__socketz00,
															BgL_domainz00_2763);
														if (BGL_DATAGRAM_SOCKETP(BgL_aux1972z00_2769))
															{	/* Llib/socket.scm 633 */
																BgL_res1781z00_2764 = BgL_aux1972z00_2769;
															}
														else
															{
																obj_t BgL_auxz00_4183;

																BgL_auxz00_4183 =
																	BGl_typezd2errorzd2zz__errorz00
																	(BGl_string2014z00zz__socketz00, BINT(28424L),
																	BGl_string2112z00zz__socketz00,
																	BGl_string2099z00zz__socketz00,
																	BgL_aux1972z00_2769);
																FAILURE(BgL_auxz00_4183, BFALSE, BFALSE);
															}
													}
											}
										}
										return BgL_res1781z00_2764;
									}
								}
							}
							break;
						case 3L:

							{	/* Llib/socket.scm 627 */
								obj_t BgL_broadcastz00_2770;

								{
									obj_t BgL_auxz00_4187;

									if (VECTORP(BgL_opt1166z00_75))
										{	/* Llib/socket.scm 627 */
											BgL_auxz00_4187 = BgL_opt1166z00_75;
										}
									else
										{
											obj_t BgL_auxz00_4190;

											BgL_auxz00_4190 =
												BGl_typezd2errorzd2zz__errorz00
												(BGl_string2014z00zz__socketz00, BINT(28170L),
												BGl_string2112z00zz__socketz00,
												BGl_string2026z00zz__socketz00, BgL_opt1166z00_75);
											FAILURE(BgL_auxz00_4190, BFALSE, BFALSE);
										}
									BgL_broadcastz00_2770 = VECTOR_REF(BgL_auxz00_4187, 2L);
								}
								{	/* Llib/socket.scm 627 */
									obj_t BgL_domainz00_2771;

									BgL_domainz00_2771 = BGl_symbol2027z00zz__socketz00;
									{	/* Llib/socket.scm 627 */

										{	/* Llib/socket.scm 627 */
											obj_t BgL_res1782z00_2772;

											{	/* Llib/socket.scm 627 */
												obj_t BgL_hostnamez00_2773;
												int BgL_portz00_2774;

												if (STRINGP(BgL_g1168z00_2760))
													{	/* Llib/socket.scm 627 */
														BgL_hostnamez00_2773 = BgL_g1168z00_2760;
													}
												else
													{
														obj_t BgL_auxz00_4197;

														BgL_auxz00_4197 =
															BGl_typezd2errorzd2zz__errorz00
															(BGl_string2014z00zz__socketz00, BINT(28170L),
															BGl_string2112z00zz__socketz00,
															BGl_string2020z00zz__socketz00,
															BgL_g1168z00_2760);
														FAILURE(BgL_auxz00_4197, BFALSE, BFALSE);
													}
												{	/* Llib/socket.scm 627 */
													obj_t BgL_tmpz00_4201;

													if (INTEGERP(BgL_g1169z00_2761))
														{	/* Llib/socket.scm 627 */
															BgL_tmpz00_4201 = BgL_g1169z00_2761;
														}
													else
														{
															obj_t BgL_auxz00_4204;

															BgL_auxz00_4204 =
																BGl_typezd2errorzd2zz__errorz00
																(BGl_string2014z00zz__socketz00, BINT(28170L),
																BGl_string2112z00zz__socketz00,
																BGl_string2042z00zz__socketz00,
																BgL_g1169z00_2761);
															FAILURE(BgL_auxz00_4204, BFALSE, BFALSE);
														}
													BgL_portz00_2774 = CINT(BgL_tmpz00_4201);
												}
												BGl_z52socketzd2initz12z92zz__socketz00();
												{	/* Llib/socket.scm 629 */
													bool_t BgL_test2457z00_4210;

													{	/* Llib/socket.scm 629 */
														bool_t BgL__ortest_1059z00_2775;

														BgL__ortest_1059z00_2775 =
															(BgL_domainz00_2771 ==
															BGl_symbol2027z00zz__socketz00);
														if (BgL__ortest_1059z00_2775)
															{	/* Llib/socket.scm 629 */
																BgL_test2457z00_4210 = BgL__ortest_1059z00_2775;
															}
														else
															{	/* Llib/socket.scm 629 */
																bool_t BgL__ortest_1060z00_2776;

																BgL__ortest_1060z00_2776 =
																	(BgL_domainz00_2771 ==
																	BGl_symbol2044z00zz__socketz00);
																if (BgL__ortest_1060z00_2776)
																	{	/* Llib/socket.scm 629 */
																		BgL_test2457z00_4210 =
																			BgL__ortest_1060z00_2776;
																	}
																else
																	{	/* Llib/socket.scm 629 */
																		BgL_test2457z00_4210 =
																			(BgL_domainz00_2771 ==
																			BGl_symbol2046z00zz__socketz00);
																	}
															}
													}
													if (BgL_test2457z00_4210)
														{	/* Llib/socket.scm 629 */
															BgL_res1782z00_2772 =
																bgl_make_datagram_client_socket
																(BgL_hostnamez00_2773, BgL_portz00_2774,
																CBOOL(BgL_broadcastz00_2770),
																BgL_domainz00_2771);
														}
													else
														{	/* Llib/socket.scm 633 */
															obj_t BgL_aux1979z00_2777;

															BgL_aux1979z00_2777 =
																BGl_errorz00zz__errorz00
																(BGl_string2113z00zz__socketz00,
																BGl_string2060z00zz__socketz00,
																BgL_domainz00_2771);
															if (BGL_DATAGRAM_SOCKETP(BgL_aux1979z00_2777))
																{	/* Llib/socket.scm 633 */
																	BgL_res1782z00_2772 = BgL_aux1979z00_2777;
																}
															else
																{
																	obj_t BgL_auxz00_4221;

																	BgL_auxz00_4221 =
																		BGl_typezd2errorzd2zz__errorz00
																		(BGl_string2014z00zz__socketz00,
																		BINT(28424L),
																		BGl_string2112z00zz__socketz00,
																		BGl_string2099z00zz__socketz00,
																		BgL_aux1979z00_2777);
																	FAILURE(BgL_auxz00_4221, BFALSE, BFALSE);
																}
														}
												}
											}
											return BgL_res1782z00_2772;
										}
									}
								}
							}
							break;
						case 4L:

							{	/* Llib/socket.scm 627 */
								obj_t BgL_broadcastz00_2778;

								{
									obj_t BgL_auxz00_4225;

									if (VECTORP(BgL_opt1166z00_75))
										{	/* Llib/socket.scm 627 */
											BgL_auxz00_4225 = BgL_opt1166z00_75;
										}
									else
										{
											obj_t BgL_auxz00_4228;

											BgL_auxz00_4228 =
												BGl_typezd2errorzd2zz__errorz00
												(BGl_string2014z00zz__socketz00, BINT(28170L),
												BGl_string2112z00zz__socketz00,
												BGl_string2026z00zz__socketz00, BgL_opt1166z00_75);
											FAILURE(BgL_auxz00_4228, BFALSE, BFALSE);
										}
									BgL_broadcastz00_2778 = VECTOR_REF(BgL_auxz00_4225, 2L);
								}
								{	/* Llib/socket.scm 627 */
									obj_t BgL_domainz00_2779;

									{
										obj_t BgL_auxz00_4233;

										if (VECTORP(BgL_opt1166z00_75))
											{	/* Llib/socket.scm 627 */
												BgL_auxz00_4233 = BgL_opt1166z00_75;
											}
										else
											{
												obj_t BgL_auxz00_4236;

												BgL_auxz00_4236 =
													BGl_typezd2errorzd2zz__errorz00
													(BGl_string2014z00zz__socketz00, BINT(28170L),
													BGl_string2112z00zz__socketz00,
													BGl_string2026z00zz__socketz00, BgL_opt1166z00_75);
												FAILURE(BgL_auxz00_4236, BFALSE, BFALSE);
											}
										BgL_domainz00_2779 = VECTOR_REF(BgL_auxz00_4233, 3L);
									}
									{	/* Llib/socket.scm 627 */

										{	/* Llib/socket.scm 627 */
											obj_t BgL_res1783z00_2780;

											{	/* Llib/socket.scm 627 */
												obj_t BgL_hostnamez00_2781;
												int BgL_portz00_2782;
												obj_t BgL_domainz00_2783;

												if (STRINGP(BgL_g1168z00_2760))
													{	/* Llib/socket.scm 627 */
														BgL_hostnamez00_2781 = BgL_g1168z00_2760;
													}
												else
													{
														obj_t BgL_auxz00_4243;

														BgL_auxz00_4243 =
															BGl_typezd2errorzd2zz__errorz00
															(BGl_string2014z00zz__socketz00, BINT(28170L),
															BGl_string2112z00zz__socketz00,
															BGl_string2020z00zz__socketz00,
															BgL_g1168z00_2760);
														FAILURE(BgL_auxz00_4243, BFALSE, BFALSE);
													}
												{	/* Llib/socket.scm 627 */
													obj_t BgL_tmpz00_4247;

													if (INTEGERP(BgL_g1169z00_2761))
														{	/* Llib/socket.scm 627 */
															BgL_tmpz00_4247 = BgL_g1169z00_2761;
														}
													else
														{
															obj_t BgL_auxz00_4250;

															BgL_auxz00_4250 =
																BGl_typezd2errorzd2zz__errorz00
																(BGl_string2014z00zz__socketz00, BINT(28170L),
																BGl_string2112z00zz__socketz00,
																BGl_string2042z00zz__socketz00,
																BgL_g1169z00_2761);
															FAILURE(BgL_auxz00_4250, BFALSE, BFALSE);
														}
													BgL_portz00_2782 = CINT(BgL_tmpz00_4247);
												}
												if (SYMBOLP(BgL_domainz00_2779))
													{	/* Llib/socket.scm 627 */
														BgL_domainz00_2783 = BgL_domainz00_2779;
													}
												else
													{
														obj_t BgL_auxz00_4257;

														BgL_auxz00_4257 =
															BGl_typezd2errorzd2zz__errorz00
															(BGl_string2014z00zz__socketz00, BINT(28170L),
															BGl_string2112z00zz__socketz00,
															BGl_string2048z00zz__socketz00,
															BgL_domainz00_2779);
														FAILURE(BgL_auxz00_4257, BFALSE, BFALSE);
													}
												BGl_z52socketzd2initz12z92zz__socketz00();
												{	/* Llib/socket.scm 629 */
													bool_t BgL_test2466z00_4262;

													{	/* Llib/socket.scm 629 */
														bool_t BgL__ortest_1059z00_2784;

														BgL__ortest_1059z00_2784 =
															(BgL_domainz00_2783 ==
															BGl_symbol2027z00zz__socketz00);
														if (BgL__ortest_1059z00_2784)
															{	/* Llib/socket.scm 629 */
																BgL_test2466z00_4262 = BgL__ortest_1059z00_2784;
															}
														else
															{	/* Llib/socket.scm 629 */
																bool_t BgL__ortest_1060z00_2785;

																BgL__ortest_1060z00_2785 =
																	(BgL_domainz00_2783 ==
																	BGl_symbol2044z00zz__socketz00);
																if (BgL__ortest_1060z00_2785)
																	{	/* Llib/socket.scm 629 */
																		BgL_test2466z00_4262 =
																			BgL__ortest_1060z00_2785;
																	}
																else
																	{	/* Llib/socket.scm 629 */
																		BgL_test2466z00_4262 =
																			(BgL_domainz00_2783 ==
																			BGl_symbol2046z00zz__socketz00);
																	}
															}
													}
													if (BgL_test2466z00_4262)
														{	/* Llib/socket.scm 629 */
															BgL_res1783z00_2780 =
																bgl_make_datagram_client_socket
																(BgL_hostnamez00_2781, BgL_portz00_2782,
																CBOOL(BgL_broadcastz00_2778),
																BgL_domainz00_2783);
														}
													else
														{	/* Llib/socket.scm 633 */
															obj_t BgL_aux1990z00_2786;

															BgL_aux1990z00_2786 =
																BGl_errorz00zz__errorz00
																(BGl_string2113z00zz__socketz00,
																BGl_string2060z00zz__socketz00,
																BgL_domainz00_2783);
															if (BGL_DATAGRAM_SOCKETP(BgL_aux1990z00_2786))
																{	/* Llib/socket.scm 633 */
																	BgL_res1783z00_2780 = BgL_aux1990z00_2786;
																}
															else
																{
																	obj_t BgL_auxz00_4273;

																	BgL_auxz00_4273 =
																		BGl_typezd2errorzd2zz__errorz00
																		(BGl_string2014z00zz__socketz00,
																		BINT(28424L),
																		BGl_string2112z00zz__socketz00,
																		BGl_string2099z00zz__socketz00,
																		BgL_aux1990z00_2786);
																	FAILURE(BgL_auxz00_4273, BFALSE, BFALSE);
																}
														}
												}
											}
											return BgL_res1783z00_2780;
										}
									}
								}
							}
							break;
						default:
							return BUNSPEC;
						}
				}
			}
		}

	}



/* make-datagram-client-socket */
	BGL_EXPORTED_DEF obj_t
		BGl_makezd2datagramzd2clientzd2socketzd2zz__socketz00(obj_t
		BgL_hostnamez00_71, int BgL_portz00_72, obj_t BgL_broadcastz00_73,
		obj_t BgL_domainz00_74)
	{
		{	/* Llib/socket.scm 627 */
			BGl_z52socketzd2initz12z92zz__socketz00();
			{	/* Llib/socket.scm 629 */
				bool_t BgL_test2470z00_4279;

				{	/* Llib/socket.scm 629 */
					bool_t BgL__ortest_1059z00_2787;

					BgL__ortest_1059z00_2787 =
						(BgL_domainz00_74 == BGl_symbol2027z00zz__socketz00);
					if (BgL__ortest_1059z00_2787)
						{	/* Llib/socket.scm 629 */
							BgL_test2470z00_4279 = BgL__ortest_1059z00_2787;
						}
					else
						{	/* Llib/socket.scm 629 */
							bool_t BgL__ortest_1060z00_2788;

							BgL__ortest_1060z00_2788 =
								(BgL_domainz00_74 == BGl_symbol2044z00zz__socketz00);
							if (BgL__ortest_1060z00_2788)
								{	/* Llib/socket.scm 629 */
									BgL_test2470z00_4279 = BgL__ortest_1060z00_2788;
								}
							else
								{	/* Llib/socket.scm 629 */
									BgL_test2470z00_4279 =
										(BgL_domainz00_74 == BGl_symbol2046z00zz__socketz00);
								}
						}
				}
				if (BgL_test2470z00_4279)
					{	/* Llib/socket.scm 629 */
						return
							bgl_make_datagram_client_socket(BgL_hostnamez00_71,
							BgL_portz00_72, CBOOL(BgL_broadcastz00_73), BgL_domainz00_74);
					}
				else
					{	/* Llib/socket.scm 629 */
						return
							BGl_errorz00zz__errorz00(BGl_string2113z00zz__socketz00,
							BGl_string2060z00zz__socketz00, BgL_domainz00_74);
					}
			}
		}

	}



/* datagram-socket-close */
	BGL_EXPORTED_DEF obj_t BGl_datagramzd2socketzd2closez00zz__socketz00(obj_t
		BgL_socketz00_77)
	{
		{	/* Llib/socket.scm 638 */
			BGL_TAIL return bgl_datagram_socket_close(BgL_socketz00_77);
		}

	}



/* &datagram-socket-close */
	obj_t BGl_z62datagramzd2socketzd2closez62zz__socketz00(obj_t BgL_envz00_2464,
		obj_t BgL_socketz00_2465)
	{
		{	/* Llib/socket.scm 638 */
			{	/* Llib/socket.scm 639 */
				obj_t BgL_auxz00_4289;

				if (BGL_DATAGRAM_SOCKETP(BgL_socketz00_2465))
					{	/* Llib/socket.scm 639 */
						BgL_auxz00_4289 = BgL_socketz00_2465;
					}
				else
					{
						obj_t BgL_auxz00_4292;

						BgL_auxz00_4292 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2014z00zz__socketz00,
							BINT(28765L), BGl_string2114z00zz__socketz00,
							BGl_string2099z00zz__socketz00, BgL_socketz00_2465);
						FAILURE(BgL_auxz00_4292, BFALSE, BFALSE);
					}
				return BGl_datagramzd2socketzd2closez00zz__socketz00(BgL_auxz00_4289);
			}
		}

	}



/* datagram-socket-receive */
	BGL_EXPORTED_DEF obj_t BGl_datagramzd2socketzd2receivez00zz__socketz00(obj_t
		BgL_socketz00_78, int BgL_lengthz00_79)
	{
		{	/* Llib/socket.scm 644 */
			return
				bgl_datagram_socket_receive(BgL_socketz00_78,
				(long) (BgL_lengthz00_79));
		}

	}



/* &datagram-socket-receive */
	obj_t BGl_z62datagramzd2socketzd2receivez62zz__socketz00(obj_t
		BgL_envz00_2466, obj_t BgL_socketz00_2467, obj_t BgL_lengthz00_2468)
	{
		{	/* Llib/socket.scm 644 */
			{	/* Llib/socket.scm 645 */
				int BgL_auxz00_4306;
				obj_t BgL_auxz00_4299;

				{	/* Llib/socket.scm 645 */
					obj_t BgL_tmpz00_4307;

					if (INTEGERP(BgL_lengthz00_2468))
						{	/* Llib/socket.scm 645 */
							BgL_tmpz00_4307 = BgL_lengthz00_2468;
						}
					else
						{
							obj_t BgL_auxz00_4310;

							BgL_auxz00_4310 =
								BGl_typezd2errorzd2zz__errorz00(BGl_string2014z00zz__socketz00,
								BINT(29082L), BGl_string2115z00zz__socketz00,
								BGl_string2042z00zz__socketz00, BgL_lengthz00_2468);
							FAILURE(BgL_auxz00_4310, BFALSE, BFALSE);
						}
					BgL_auxz00_4306 = CINT(BgL_tmpz00_4307);
				}
				if (BGL_DATAGRAM_SOCKETP(BgL_socketz00_2467))
					{	/* Llib/socket.scm 645 */
						BgL_auxz00_4299 = BgL_socketz00_2467;
					}
				else
					{
						obj_t BgL_auxz00_4302;

						BgL_auxz00_4302 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2014z00zz__socketz00,
							BINT(29082L), BGl_string2115z00zz__socketz00,
							BGl_string2099z00zz__socketz00, BgL_socketz00_2467);
						FAILURE(BgL_auxz00_4302, BFALSE, BFALSE);
					}
				return
					BGl_datagramzd2socketzd2receivez00zz__socketz00(BgL_auxz00_4299,
					BgL_auxz00_4306);
			}
		}

	}



/* datagram-socket-send */
	BGL_EXPORTED_DEF obj_t BGl_datagramzd2socketzd2sendz00zz__socketz00(obj_t
		BgL_socketz00_80, obj_t BgL_stringz00_81, obj_t BgL_hostz00_82,
		int BgL_portz00_83)
	{
		{	/* Llib/socket.scm 650 */
			BGL_TAIL return
				bgl_datagram_socket_send(BgL_socketz00_80, BgL_stringz00_81,
				BgL_hostz00_82, BgL_portz00_83);
		}

	}



/* &datagram-socket-send */
	obj_t BGl_z62datagramzd2socketzd2sendz62zz__socketz00(obj_t BgL_envz00_2469,
		obj_t BgL_socketz00_2470, obj_t BgL_stringz00_2471, obj_t BgL_hostz00_2472,
		obj_t BgL_portz00_2473)
	{
		{	/* Llib/socket.scm 650 */
			{	/* Llib/socket.scm 651 */
				int BgL_auxz00_4338;
				obj_t BgL_auxz00_4331;
				obj_t BgL_auxz00_4324;
				obj_t BgL_auxz00_4317;

				{	/* Llib/socket.scm 651 */
					obj_t BgL_tmpz00_4339;

					if (INTEGERP(BgL_portz00_2473))
						{	/* Llib/socket.scm 651 */
							BgL_tmpz00_4339 = BgL_portz00_2473;
						}
					else
						{
							obj_t BgL_auxz00_4342;

							BgL_auxz00_4342 =
								BGl_typezd2errorzd2zz__errorz00(BGl_string2014z00zz__socketz00,
								BINT(29412L), BGl_string2116z00zz__socketz00,
								BGl_string2042z00zz__socketz00, BgL_portz00_2473);
							FAILURE(BgL_auxz00_4342, BFALSE, BFALSE);
						}
					BgL_auxz00_4338 = CINT(BgL_tmpz00_4339);
				}
				if (STRINGP(BgL_hostz00_2472))
					{	/* Llib/socket.scm 651 */
						BgL_auxz00_4331 = BgL_hostz00_2472;
					}
				else
					{
						obj_t BgL_auxz00_4334;

						BgL_auxz00_4334 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2014z00zz__socketz00,
							BINT(29412L), BGl_string2116z00zz__socketz00,
							BGl_string2020z00zz__socketz00, BgL_hostz00_2472);
						FAILURE(BgL_auxz00_4334, BFALSE, BFALSE);
					}
				if (STRINGP(BgL_stringz00_2471))
					{	/* Llib/socket.scm 651 */
						BgL_auxz00_4324 = BgL_stringz00_2471;
					}
				else
					{
						obj_t BgL_auxz00_4327;

						BgL_auxz00_4327 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2014z00zz__socketz00,
							BINT(29412L), BGl_string2116z00zz__socketz00,
							BGl_string2020z00zz__socketz00, BgL_stringz00_2471);
						FAILURE(BgL_auxz00_4327, BFALSE, BFALSE);
					}
				if (BGL_DATAGRAM_SOCKETP(BgL_socketz00_2470))
					{	/* Llib/socket.scm 651 */
						BgL_auxz00_4317 = BgL_socketz00_2470;
					}
				else
					{
						obj_t BgL_auxz00_4320;

						BgL_auxz00_4320 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2014z00zz__socketz00,
							BINT(29412L), BGl_string2116z00zz__socketz00,
							BGl_string2099z00zz__socketz00, BgL_socketz00_2470);
						FAILURE(BgL_auxz00_4320, BFALSE, BFALSE);
					}
				return
					BGl_datagramzd2socketzd2sendz00zz__socketz00(BgL_auxz00_4317,
					BgL_auxz00_4324, BgL_auxz00_4331, BgL_auxz00_4338);
			}
		}

	}



/* datagram-socket-option */
	BGL_EXPORTED_DEF obj_t BGl_datagramzd2socketzd2optionz00zz__socketz00(obj_t
		BgL_socketz00_84, obj_t BgL_optionz00_85)
	{
		{	/* Llib/socket.scm 656 */
			BGL_TAIL return bgl_getsockopt(BgL_socketz00_84, BgL_optionz00_85);
		}

	}



/* &datagram-socket-option */
	obj_t BGl_z62datagramzd2socketzd2optionz62zz__socketz00(obj_t BgL_envz00_2474,
		obj_t BgL_socketz00_2475, obj_t BgL_optionz00_2476)
	{
		{	/* Llib/socket.scm 656 */
			{	/* Llib/socket.scm 657 */
				obj_t BgL_auxz00_4356;
				obj_t BgL_auxz00_4349;

				if (KEYWORDP(BgL_optionz00_2476))
					{	/* Llib/socket.scm 657 */
						BgL_auxz00_4356 = BgL_optionz00_2476;
					}
				else
					{
						obj_t BgL_auxz00_4359;

						BgL_auxz00_4359 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2014z00zz__socketz00,
							BINT(29741L), BGl_string2117z00zz__socketz00,
							BGl_string2096z00zz__socketz00, BgL_optionz00_2476);
						FAILURE(BgL_auxz00_4359, BFALSE, BFALSE);
					}
				if (BGL_DATAGRAM_SOCKETP(BgL_socketz00_2475))
					{	/* Llib/socket.scm 657 */
						BgL_auxz00_4349 = BgL_socketz00_2475;
					}
				else
					{
						obj_t BgL_auxz00_4352;

						BgL_auxz00_4352 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2014z00zz__socketz00,
							BINT(29741L), BGl_string2117z00zz__socketz00,
							BGl_string2099z00zz__socketz00, BgL_socketz00_2475);
						FAILURE(BgL_auxz00_4352, BFALSE, BFALSE);
					}
				return
					BGl_datagramzd2socketzd2optionz00zz__socketz00(BgL_auxz00_4349,
					BgL_auxz00_4356);
			}
		}

	}



/* datagram-socket-option-set! */
	BGL_EXPORTED_DEF obj_t
		BGl_datagramzd2socketzd2optionzd2setz12zc0zz__socketz00(obj_t
		BgL_socketz00_86, obj_t BgL_optionz00_87, obj_t BgL_valz00_88)
	{
		{	/* Llib/socket.scm 662 */
			BGL_TAIL return
				bgl_setsockopt(BgL_socketz00_86, BgL_optionz00_87, BgL_valz00_88);
		}

	}



/* &datagram-socket-option-set! */
	obj_t BGl_z62datagramzd2socketzd2optionzd2setz12za2zz__socketz00(obj_t
		BgL_envz00_2477, obj_t BgL_socketz00_2478, obj_t BgL_optionz00_2479,
		obj_t BgL_valz00_2480)
	{
		{	/* Llib/socket.scm 662 */
			{	/* Llib/socket.scm 663 */
				obj_t BgL_auxz00_4372;
				obj_t BgL_auxz00_4365;

				if (KEYWORDP(BgL_optionz00_2479))
					{	/* Llib/socket.scm 663 */
						BgL_auxz00_4372 = BgL_optionz00_2479;
					}
				else
					{
						obj_t BgL_auxz00_4375;

						BgL_auxz00_4375 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2014z00zz__socketz00,
							BINT(30060L), BGl_string2118z00zz__socketz00,
							BGl_string2096z00zz__socketz00, BgL_optionz00_2479);
						FAILURE(BgL_auxz00_4375, BFALSE, BFALSE);
					}
				if (BGL_DATAGRAM_SOCKETP(BgL_socketz00_2478))
					{	/* Llib/socket.scm 663 */
						BgL_auxz00_4365 = BgL_socketz00_2478;
					}
				else
					{
						obj_t BgL_auxz00_4368;

						BgL_auxz00_4368 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2014z00zz__socketz00,
							BINT(30060L), BGl_string2118z00zz__socketz00,
							BGl_string2099z00zz__socketz00, BgL_socketz00_2478);
						FAILURE(BgL_auxz00_4368, BFALSE, BFALSE);
					}
				return
					BGl_datagramzd2socketzd2optionzd2setz12zc0zz__socketz00
					(BgL_auxz00_4365, BgL_auxz00_4372, BgL_valz00_2480);
			}
		}

	}



/* object-init */
	obj_t BGl_objectzd2initzd2zz__socketz00(void)
	{
		{	/* Llib/socket.scm 14 */
			return BUNSPEC;
		}

	}



/* generic-init */
	obj_t BGl_genericzd2initzd2zz__socketz00(void)
	{
		{	/* Llib/socket.scm 14 */
			return BUNSPEC;
		}

	}



/* method-init */
	obj_t BGl_methodzd2initzd2zz__socketz00(void)
	{
		{	/* Llib/socket.scm 14 */
			return BUNSPEC;
		}

	}



/* imported-modules-init */
	obj_t BGl_importedzd2moduleszd2initz00zz__socketz00(void)
	{
		{	/* Llib/socket.scm 14 */
			BGl_modulezd2initializa7ationz75zz__errorz00(88804785L,
				BSTRING_TO_STRING(BGl_string2119z00zz__socketz00));
			BGl_modulezd2initializa7ationz75zz__objectz00(475449627L,
				BSTRING_TO_STRING(BGl_string2119z00zz__socketz00));
			return
				BGl_modulezd2initializa7ationz75zz__threadz00(149516032L,
				BSTRING_TO_STRING(BGl_string2119z00zz__socketz00));
		}

	}

#ifdef __cplusplus
}
#endif
