CFLAGS) $(CFLAGS) -MT interop_nbd_server-requires.o -MD -MP -MF $(DEPDIR)/interop_nbd_server-requires.Tpo -c -o interop_nbd_server-requires.o `test -f 'requires.c' || echo '$(srcdir)/'`requires.c
	$(AM_V_at)$(am__mv) $(DEPDIR)/interop_nbd_server-requires.Tpo $(DEPDIR)/interop_nbd_server-requires.Po
#	$(AM_V_CC)source='requires.c' object='interop_nbd_server-requires.o' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interop_nbd_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o interop_nbd_server-requires.o `test -f 'requires.c' || echo '$(srcdir)/'`requires.c

interop_nbd_server-requires.obj: requires.c
	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interop_nbd_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT interop_nbd_server-requires.obj -MD -MP -MF $(DEPDIR)/interop_nbd_server-requires.Tpo -c -o interop_nbd_server-requires.obj `if test -f 'requires.c'; then $(CYGPATH_W) 'requires.c'; else $(CYGPATH_W) '$(srcdir)/requires.c'; fi`
	$(AM_V_at)$(am__mv) $(DEPDIR)/interop_nbd_server-requires.Tpo $(DEPDIR)/interop_nbd_server-requires.Po
#	$(AM_V_CC)source='requires.c' object='interop_nbd_server-requires.obj' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interop_nbd_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o interop_nbd_server-requires.obj `if test -f 'requires.c'; then $(CYGPATH_W) 'requires.c'; else $(CYGPATH_W) '$(srcdir)/requires.c'; fi`

interop_nbd_server_tls-interop.o: interop.c
	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interop_nbd_server_tls_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT interop_nbd_server_tls-interop.o -MD -MP -MF $(DEPDIR)/interop_nbd_server_tls-interop.Tpo -c -o interop_nbd_server_tls-interop.o `test -f 'interop.c' || echo '$(srcdir)/'`interop.c
	$(AM_V_at)$(am__mv) $(DEPDIR)/interop_nbd_server_tls-interop.Tpo $(DEPDIR)/interop_nbd_server_tls-interop.Po
#	$(AM_V_CC)source='interop.c' object='interop_nbd_server_tls-interop.o' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interop_nbd_server_tls_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o interop_nbd_server_tls-interop.o `test -f 'interop.c' || echo '$(srcdir)/'`interop.c

interop_nbd_server_tls-interop.obj: interop.c
	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interop_nbd_server_tls_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT interop_nbd_server_tls-interop.obj -MD -MP -MF $(DEPDIR)/interop_nbd_server_tls-interop.Tpo -c -o interop_nbd_server_tls-interop.obj `if test -f 'interop.c'; then $(CYGPATH_W) 'interop.c'; else $(CYGPATH_W) '$(srcdir)/interop.c'; fi`
	$(AM_V_at)$(am__mv) $(DEPDIR)/interop_nbd_server_tls-interop.Tpo $(DEPDIR)/interop_nbd_server_tls-interop.Po
#	$(AM_V_CC)source='interop.c' object='interop_nbd_server_tls-interop.obj' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interop_nbd_server_tls_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o interop_nbd_server_tls-interop.obj `if test -f 'interop.c'; then $(CYGPATH_W) 'interop.c'; else $(CYGPATH_W) '$(srcdir)/interop.c'; fi`

interop_nbd_server_tls-requires.o: requires.c
	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interop_nbd_server_tls_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT interop_nbd_server_tls-requires.o -MD -MP -MF $(DEPDIR)/interop_nbd_server_tls-requires.Tpo -c -o interop_nbd_server_tls-requires.o `test -f 'requires.c' || echo '$(srcdir)/'`requires.c
	$(AM_V_at)$(am__mv) $(DEPDIR)/interop_nbd_server_tls-requires.Tpo $(DEPDIR)/interop_nbd_server_tls-requires.Po
#	$(AM_V_CC)source='requires.c' object='interop_nbd_server_tls-requires.o' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interop_nbd_server_tls_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o interop_nbd_server_tls-requires.o `test -f 'requires.c' || echo '$(srcdir)/'`requires.c

interop_nbd_server_tls-requires.obj: requires.c
	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interop_nbd_server_tls_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT interop_nbd_server_tls-requires.obj -MD -MP -MF $(DEPDIR)/interop_nbd_server_tls-requires.Tpo -c -o interop_nbd_server_tls-requires.obj `if test -f 'requires.c'; then $(CYGPATH_W) 'requires.c'; else $(CYGPATH_W) '$(srcdir)/requires.c'; fi`
	$(AM_V_at)$(am__mv) $(DEPDIR)/interop_nbd_server_tls-requires.Tpo $(DEPDIR)/interop_nbd_server_tls-requires.Po
#	$(AM_V_CC)source='requires.c' object='interop_nbd_server_tls-requires.obj' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interop_nbd_server_tls_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o interop_nbd_server_tls-requires.obj `if test -f 'requires.c'; then $(CYGPATH_W) 'requires.c'; else $(CYGPATH_W) '$(srcdir)/requires.c'; fi`

interop_nbdkit-interop.o: interop.c
	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interop_nbdkit_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT interop_nbdkit-interop.o -MD -MP -MF $(DEPDIR)/interop_nbdkit-interop.Tpo -c -o interop_nbdkit-interop.o `test -f 'interop.c' || echo '$(srcdir)/'`interop.c
	$(AM_V_at)$(am__mv) $(DEPDIR)/interop_nbdkit-interop.Tpo $(DEPDIR)/interop_nbdkit-interop.Po
#	$(AM_V_CC)source='interop.c' object='interop_nbdkit-interop.o' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interop_nbdkit_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o interop_nbdkit-interop.o `test -f 'interop.c' || echo '$(srcdir)/'`interop.c

interop_nbdkit-interop.obj: interop.c
	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interop_nbdkit_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT interop_nbdkit-interop.obj -MD -MP -MF $(DEPDIR)/interop_nbdkit-interop.Tpo -c -o interop_nbdkit-interop.obj `if test -f 'interop.c'; then $(CYGPATH_W) 'interop.c'; else $(CYGPATH_W) '$(srcdir)/interop.c'; fi`
	$(AM_V_at)$(am__mv) $(DEPDIR)/interop_nbdkit-interop.Tpo $(DEPDIR)/interop_nbdkit-interop.Po
#	$(AM_V_CC)source='interop.c' object='interop_nbdkit-interop.obj' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interop_nbdkit_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o interop_nbdkit-interop.obj `if test -f 'interop.c'; then $(CYGPATH_W) 'interop.c'; else $(CYGPATH_W) '$(srcdir)/interop.c'; fi`

interop_nbdkit-requires.o: requires.c
	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interop_nbdkit_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT interop_nbdkit-requires.o -MD -MP -MF $(DEPDIR)/interop_nbdkit-requires.Tpo -c -o interop_nbdkit-requires.o `test -f 'requires.c' || echo '$(srcdir)/'`requires.c
	$(AM_V_at)$(am__mv) $(DEPDIR)/interop_nbdkit-requires.Tpo $(DEPDIR)/interop_nbdkit-requires.Po
#	$(AM_V_CC)source='requires.c' object='interop_nbdkit-requires.o' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interop_nbdkit_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o interop_nbdkit-requires.o `test -f 'requires.c' || echo '$(srcdir)/'`requires.c

interop_nbdkit-requires.obj: requires.c
	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interop_nbdkit_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT interop_nbdkit-requires.obj -MD -MP -MF $(DEPDIR)/interop_nbdkit-requires.Tpo -c -o interop_nbdkit-requires.obj `if test -f 'requires.c'; then $(CYGPATH_W) 'requires.c'; else $(CYGPATH_W) '$(srcdir)/requires.c'; fi`
	$(AM_V_at)$(am__mv) $(DEPDIR)/interop_nbdkit-requires.Tpo $(DEPDIR)/interop_nbdkit-requires.Po
#	$(AM_V_CC)source='requires.c' object='interop_nbdkit-requires.obj' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interop_nbdkit_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o interop_nbdkit-requires.obj `if test -f 'requires.c'; then $(CYGPATH_W) 'requires.c'; else $(CYGPATH_W) '$(srcdir)/requires.c'; fi`

interop_nbdkit_tls_certs-interop.o: interop.c
	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interop_nbdkit_tls_certs_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT interop_nbdkit_tls_certs-interop.o -MD -MP -MF $(DEPDIR)/interop_nbdkit_tls_certs-interop.Tpo -c -o interop_nbdkit_tls_certs-interop.o `test -f 'interop.c' || echo '$(srcdir)/'`interop.c
	$(AM_V_at)$(am__mv) $(DEPDIR)/interop_nbdkit_tls_certs-interop.Tpo $(DEPDIR)/interop_nbdkit_tls_certs-interop.Po
#	$(AM_V_CC)source='interop.c' object='interop_nbdkit_tls_certs-interop.o' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interop_nbdkit_tls_certs_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o interop_nbdkit_tls_certs-interop.o `test -f 'interop.c' || echo '$(srcdir)/'`interop.c

interop_nbdkit_tls_certs-interop.obj: interop.c
	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interop_nbdkit_tls_certs_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT interop_nbdkit_tls_certs-interop.obj -MD -MP -MF $(DEPDIR)/interop_nbdkit_tls_certs-interop.Tpo -c -o interop_nbdkit_tls_certs-interop.obj `if test -f 'interop.c'; then $(CYGPATH_W) 'interop.c'; else $(CYGPATH_W) '$(srcdir)/interop.c'; fi`
	$(AM_V_at)$(am__mv) $(DEPDIR)/interop_nbdkit_tls_certs-interop.Tpo $(DEPDIR)/interop_nbdkit_tls_certs-interop.Po
#	$(AM_V_CC)source='interop.c' object='interop_nbdkit_tls_certs-interop.obj' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interop_nbdkit_tls_certs_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o interop_nbdkit_tls_certs-interop.obj `if test -f 'interop.c'; then $(CYGPATH_W) 'interop.c'; else $(CYGPATH_W) '$(srcdir)/interop.c'; fi`

interop_nbdkit_tls_certs-requires.o: requires.c
	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interop_nbdkit_tls_certs_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT interop_nbdkit_tls_certs-requires.o -MD -MP -MF $(DEPDIR)/interop_nbdkit_tls_certs-requires.Tpo -c -o interop_nbdkit_tls_certs-requires.o `test -f 'requires.c' || echo '$(srcdir)/'`requires.c
	$(AM_V_at)$(am__mv) $(DEPDIR)/interop_nbdkit_tls_certs-requires.Tpo $(DEPDIR)/interop_nbdkit_tls_certs-requires.Po
#	$(AM_V_CC)source='requires.c' object='interop_nbdkit_tls_certs-requires.o' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interop_nbdkit_tls_certs_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o interop_nbdkit_tls_certs-requires.o `test -f 'requires.c' || echo '$(srcdir)/'`requires.c

interop_nbdkit_tls_certs-requires.obj: requires.c
	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interop_nbdkit_tls_certs_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT interop_nbdkit_tls_certs-requires.obj -MD -MP -MF $(DEPDIR)/interop_nbdkit_tls_certs-requires.Tpo -c -o interop_nbdkit_tls_certs-requires.obj `if test -f 'requires.c'; then $(CYGPATH_W) 'requires.c'; else $(CYGPATH_W) '$(srcdir)/requires.c'; fi`
	$(AM_V_at)$(am__mv) $(DEPDIR)/interop_nbdkit_tls_certs-requires.Tpo $(DEPDIR)/interop_nbdkit_tls_certs-requires.Po
#	$(AM_V_CC)source='requires.c' object='interop_nbdkit_tls_certs-requires.obj' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interop_nbdkit_tls_certs_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o interop_nbdkit_tls_certs-requires.obj `if test -f 'requires.c'; then $(CYGPATH_W) 'requires.c'; else $(CYGPATH_W) '$(srcdir)/requires.c'; fi`

interop_nbdkit_tls_certs_allow_enabled-interop.o: interop.c
	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interop_nbdkit_tls_certs_allow_enabled_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT interop_nbdkit_tls_certs_allow_enabled-interop.o -MD -MP -MF $(DEPDIR)/interop_nbdkit_tls_certs_allow_enabled-interop.Tpo -c -o interop_nbdkit_tls_certs_allow_enabled-interop.o `test -f 'interop.c' || echo '$(srcdir)/'`interop.c
	$(AM_V_at)$(am__mv) $(DEPDIR)/interop_nbdkit_tls_certs_allow_enabled-interop.Tpo $(DEPDIR)/interop_nbdkit_tls_certs_allow_enabled-interop.Po
#	$(AM_V_CC)source='interop.c' object='interop_nbdkit_tls_certs_allow_enabled-interop.o' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interop_nbdkit_tls_certs_allow_enabled_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o interop_nbdkit_tls_certs_allow_enabled-interop.o `test -f 'interop.c' || echo '$(srcdir)/'`interop.c

interop_nbdkit_tls_certs_allow_enabled-interop.obj: interop.c
	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interop_nbdkit_tls_certs_allow_enabled_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT interop_nbdkit_tls_certs_allow_enabled-interop.obj -MD -MP -MF $(DEPDIR)/interop_nbdkit_tls_certs_allow_enabled-interop.Tpo -c -o interop_nbdkit_tls_certs_allow_enabled-interop.obj `if test -f 'interop.c'; then $(CYGPATH_W) 'interop.c'; else $(CYGPATH_W) '$(srcdir)/interop.c'; fi`
	$(AM_V_at)$(am__mv) $(DEPDIR)/interop_nbdkit_tls_certs_allow_enabled-interop.Tpo $(DEPDIR)/interop_nbdkit_tls_certs_allow_enabled-interop.Po
#	$(AM_V_CC)source='interop.c' object='interop_nbdkit_tls_certs_allow_enabled-interop.obj' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interop_nbdkit_tls_certs_allow_enabled_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o interop_nbdkit_tls_certs_allow_enabled-interop.obj `if test -f 'interop.c'; then $(CYGPATH_W) 'interop.c'; else $(CYGPATH_W) '$(srcdir)/interop.c'; fi`

interop_nbdkit_tls_certs_allow_enabled-requires.o: requires.c
	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interop_nbdkit_tls_certs_allow_enabled_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT interop_nbdkit_tls_certs_allow_enabled-requires.o -MD -MP -MF $(DEPDIR)/interop_nbdkit_tls_certs_allow_enabled-requires.Tpo -c -o interop_nbdkit_tls_certs_allow_enabled-requires.o `test -f 'requires.c' || echo '$(srcdir)/'`requires.c
	$(AM_V_at)$(am__mv) $(DEPDIR)/interop_nbdkit_tls_certs_allow_enabled-requires.Tpo $(DEPDIR)/interop_nbdkit_tls_certs_allow_enabled-requires.Po
#	$(AM_V_CC)source='requires.c' object='interop_nbdkit_tls_certs_allow_enabled-requires.o' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interop_nbdkit_tls_certs_allow_enabled_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o interop_nbdkit_tls_certs_allow_enabled-requires.o `test -f 'requires.c' || echo '$(srcdir)/'`requires.c

interop_nbdkit_tls_certs_allow_enabled-requires.obj: requires.c
	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interop_nbdkit_tls_certs_allow_enabled_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT interop_nbdkit_tls_certs_allow_enabled-requires.obj -MD -MP -MF $(DEPDIR)/interop_nbdkit_tls_certs_allow_enabled-requires.Tpo -c -o interop_nbdkit_tls_certs_allow_enabled-requires.obj `if test -f 'requires.c'; then $(CYGPATH_W) 'requires.c'; else $(CYGPATH_W) '$(srcdir)/requires.c'; fi`
	$(AM_V_at)$(am__mv) $(DEPDIR)/interop_nbdkit_tls_certs_allow_enabled-requires.Tpo $(DEPDIR)/interop_nbdkit_tls_certs_allow_enabled-requires.Po
#	$(AM_V_CC)source='requires.c' object='interop_nbdkit_tls_certs_allow_enabled-requires.obj' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interop_nbdkit_tls_certs_allow_enabled_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o interop_nbdkit_tls_certs_allow_enabled-requires.obj `if test -f 'requires.c'; then $(CYGPATH_W) 'requires.c'; else $(CYGPATH_W) '$(srcdir)/requires.c'; fi`

interop_nbdkit_tls_certs_allow_fallback-interop.o: interop.c
	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interop_nbdkit_tls_certs_allow_fallback_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT interop_nbdkit_tls_certs_allow_fallback-interop.o -MD -MP -MF $(DEPDIR)/interop_nbdkit_tls_certs_allow_fallback-interop.Tpo -c -o interop_nbdkit_tls_certs_allow_fallback-interop.o `test -f 'interop.c' || echo '$(srcdir)/'`interop.c
	$(AM_V_at)$(am__mv) $(DEPDIR)/interop_nbdkit_tls_certs_allow_fallback-interop.Tpo $(DEPDIR)/interop_nbdkit_tls_certs_allow_fallback-interop.Po
#	$(AM_V_CC)source='interop.c' object='interop_nbdkit_tls_certs_allow_fallback-interop.o' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interop_nbdkit_tls_certs_allow_fallback_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o interop_nbdkit_tls_certs_allow_fallback-interop.o `test -f 'interop.c' || echo '$(srcdir)/'`interop.c

interop_nbdkit_tls_certs_allow_fallback-interop.obj: interop.c
	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interop_nbdkit_tls_certs_allow_fallback_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT interop_nbdkit_tls_certs_allow_fallback-interop.obj -MD -MP -MF $(DEPDIR)/interop_nbdkit_tls_certs_allow_fallback-interop.Tpo -c -o interop_nbdkit_tls_certs_allow_fallback-interop.obj `if test -f 'interop.c'; then $(CYGPATH_W) 'interop.c'; else $(CYGPATH_W) '$(srcdir)/interop.c'; fi`
	$(AM_V_at)$(am__mv) $(DEPDIR)/interop_nbdkit_tls_certs_allow_fallback-interop.Tpo $(DEPDIR)/interop_nbdkit_tls_certs_allow_fallback-interop.Po
#	$(AM_V_CC)source='interop.c' object='interop_nbdkit_tls_certs_allow_fallback-interop.obj' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interop_nbdkit_tls_certs_allow_fallback_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o interop_nbdkit_tls_certs_allow_fallback-interop.obj `if test -f 'interop.c'; then $(CYGPATH_W) 'interop.c'; else $(CYGPATH_W) '$(srcdir)/interop.c'; fi`

interop_nbdkit_tls_certs_allow_fallback-requires.o: requires.c
	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interop_nbdkit_tls_certs_allow_fallback_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT interop_nbdkit_tls_certs_allow_fallback-requires.o -MD -MP -MF $(DEPDIR)/interop_nbdkit_tls_certs_allow_fallback-requires.Tpo -c -o interop_nbdkit_tls_certs_allow_fallback-requires.o `test -f 'requires.c' || echo '$(srcdir)/'`requires.c
	$(AM_V_at)$(am__mv) $(DEPDIR)/interop_nbdkit_tls_certs_allow_fallback-requires.Tpo $(DEPDIR)/interop_nbdkit_tls_certs_allow_fallback-requires.Po
#	$(AM_V_CC)source='requires.c' object='interop_nbdkit_tls_certs_allow_fallback-requires.o' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interop_nbdkit_tls_certs_allow_fallback_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o interop_nbdkit_tls_certs_allow_fallback-requires.o `test -f 'requires.c' || echo '$(srcdir)/'`requires.c

interop_nbdkit_tls_certs_allow_fallback-requires.obj: requires.c
	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interop_nbdkit_tls_certs_allow_fallback_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT interop_nbdkit_tls_certs_allow_fallback-requires.obj -MD -MP -MF $(DEPDIR)/interop_nbdkit_tls_certs_allow_fallback-requires.Tpo -c -o interop_nbdkit_tls_certs_allow_fallback-requires.obj `if test -f 'requires.c'; then $(CYGPATH_W) 'requires.c'; else $(CYGPATH_W) '$(srcdir)/requires.c'; fi`
	$(AM_V_at)$(am__mv) $(DEPDIR)/interop_nbdkit_tls_certs_allow_fallback-requires.Tpo $(DEPDIR)/interop_nbdkit_tls_certs_allow_fallback-requires.Po
#	$(AM_V_CC)source='requires.c' object='interop_nbdkit_tls_certs_allow_fallback-requires.obj' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interop_nbdkit_tls_certs_allow_fallback_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o interop_nbdkit_tls_certs_allow_fallback-requires.obj `if test -f 'requires.c'; then $(CYGPATH_W) 'requires.c'; else $(CYGPATH_W) '$(srcdir)/requires.c'; fi`

interop_nbdkit_tls_certs_bad_CA-interop.o: interop.c
	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interop_nbdkit_tls_certs_bad_CA_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT interop_nbdkit_tls_certs_bad_CA-interop.o -MD -MP -MF $(DEPDIR)/interop_nbdkit_tls_certs_bad_CA-interop.Tpo -c -o interop_nbdkit_tls_certs_bad_CA-interop.o `test -f 'interop.c' || echo '$(srcdir)/'`interop.c
	$(AM_V_at)$(am__mv) $(DEPDIR)/interop_nbdkit_tls_certs_bad_CA-interop.Tpo $(DEPDIR)/interop_nbdkit_tls_certs_bad_CA-interop.Po
#	$(AM_V_CC)source='interop.c' object='interop_nbdkit_tls_certs_bad_CA-interop.o' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interop_nbdkit_tls_certs_bad_CA_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o interop_nbdkit_tls_certs_bad_CA-interop.o `test -f 'interop.c' || echo '$(srcdir)/'`interop.c

interop_nbdkit_tls_certs_bad_CA-interop.obj: interop.c
	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interop_nbdkit_tls_certs_bad_CA_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT interop_nbdkit_tls_certs_bad_CA-interop.obj -MD -MP -MF $(DEPDIR)/interop_nbdkit_tls_certs_bad_CA-interop.Tpo -c -o interop_nbdkit_tls_certs_bad_CA-interop.obj `if test -f 'interop.c'; then $(CYGPATH_W) 'interop.c'; else $(CYGPATH_W) '$(srcdir)/interop.c'; fi`
	$(AM_V_at)$(am__mv) $(DEPDIR)/interop_nbdkit_tls_certs_bad_CA-interop.Tpo $(DEPDIR)/interop_nbdkit_tls_certs_bad_CA-interop.Po
#	$(AM_V_CC)source='interop.c' object='interop_nbdkit_tls_certs_bad_CA-interop.obj' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interop_nbdkit_tls_certs_bad_CA_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o interop_nbdkit_tls_certs_bad_CA-interop.obj `if test -f 'interop.c'; then $(CYGPATH_W) 'interop.c'; else $(CYGPATH_W) '$(srcdir)/interop.c'; fi`

interop_nbdkit_tls_certs_bad_CA-requires.o: requires.c
	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interop_nbdkit_tls_certs_bad_CA_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT interop_nbdkit_tls_certs_bad_CA-requires.o -MD -MP -MF $(DEPDIR)/interop_nbdkit_tls_certs_bad_CA-requires.Tpo -c -o interop_nbdkit_tls_certs_bad_CA-requires.o `test -f 'requires.c' || echo '$(srcdir)/'`requires.c
	$(AM_V_at)$(am__mv) $(DEPDIR)/interop_nbdkit_tls_certs_bad_CA-requires.Tpo $(DEPDIR)/interop_nbdkit_tls_certs_bad_CA-requires.Po
#	$(AM_V_CC)source='requires.c' object='interop_nbdkit_tls_certs_bad_CA-requires.o' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interop_nbdkit_tls_certs_bad_CA_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o interop_nbdkit_tls_certs_bad_CA-requires.o `test -f 'requires.c' || echo '$(srcdir)/'`requires.c

interop_nbdkit_tls_certs_bad_CA-requires.obj: requires.c
	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interop_nbdkit_tls_certs_bad_CA_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT interop_nbdkit_tls_certs_bad_CA-requires.obj -MD -MP -MF $(DEPDIR)/interop_nbdkit_tls_certs_bad_CA-requires.Tpo -c -o interop_nbdkit_tls_certs_bad_CA-requires.obj `if test -f 'requires.c'; then $(CYGPATH_W) 'requires.c'; else $(CYGPATH_W) '$(srcdir)/requires.c'; fi`
	$(AM_V_at)$(am__mv) $(DEPDIR)/interop_nbdkit_tls_certs_bad_CA-requires.Tpo $(DEPDIR)/interop_nbdkit_tls_certs_bad_CA-requires.Po
#	$(AM_V_CC)source='requires.c' object='interop_nbdkit_tls_certs_bad_CA-requires.obj' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interop_nbdkit_tls_certs_bad_CA_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o interop_nbdkit_tls_certs_bad_CA-requires.obj `if test -f 'requires.c'; then $(CYGPATH_W) 'requires.c'; else $(CYGPATH_W) '$(srcdir)/requires.c'; fi`

interop_nbdkit_tls_certs_bad_hostname-interop.o: interop.c
	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interop_nbdkit_tls_certs_bad_hostname_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT interop_nbdkit_tls_certs_bad_hostname-interop.o -MD -MP -MF $(DEPDIR)/interop_nbdkit_tls_certs_bad_hostname-interop.Tpo -c -o interop_nbdkit_tls_certs_bad_hostname-interop.o `test -f 'interop.c' || echo '$(srcdir)/'`interop.c
	$(AM_V_at)$(am__mv) $(DEPDIR)/interop_nbdkit_tls_certs_bad_hostname-interop.Tpo $(DEPDIR)/interop_nbdkit_tls_certs_bad_hostname-interop.Po
#	$(AM_V_CC)source='interop.c' object='interop_nbdkit_tls_certs_bad_hostname-interop.o' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interop_nbdkit_tls_certs_bad_hostname_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o interop_nbdkit_tls_certs_bad_hostname-interop.o `test -f 'interop.c' || echo '$(srcdir)/'`interop.c

interop_nbdkit_tls_certs_bad_hostname-interop.obj: interop.c
	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interop_nbdkit_tls_certs_bad_hostname_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT interop_nbdkit_tls_certs_bad_hostname-interop.obj -MD -MP -MF $(DEPDIR)/interop_nbdkit_tls_certs_bad_hostname-interop.Tpo -c -o interop_nbdkit_tls_certs_bad_hostname-interop.obj `if test -f 'interop.c'; then $(CYGPATH_W) 'interop.c'; else $(CYGPATH_W) '$(srcdir)/interop.c'; fi`
	$(AM_V_at)$(am__mv) $(DEPDIR)/interop_nbdkit_tls_certs_bad_hostname-interop.Tpo $(DEPDIR)/interop_nbdkit_tls_certs_bad_hostname-interop.Po
#	$(AM_V_CC)source='interop.c' object='interop_nbdkit_tls_certs_bad_hostname-interop.obj' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interop_nbdkit_tls_certs_bad_hostname_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o interop_nbdkit_tls_certs_bad_hostname-interop.obj `if test -f 'interop.c'; then $(CYGPATH_W) 'interop.c'; else $(CYGPATH_W) '$(srcdir)/interop.c'; fi`

interop_nbdkit_tls_certs_bad_hostname-requires.o: requires.c
	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interop_nbdkit_tls_certs_bad_hostname_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT interop_nbdkit_tls_certs_bad_hostname-requires.o -MD -MP -MF $(DEPDIR)/interop_nbdkit_tls_certs_bad_hostname-requires.Tpo -c -o interop_nbdkit_tls_certs_bad_hostname-requires.o `test -f 'requires.c' || echo '$(srcdir)/'`requires.c
	$(AM_V_at)$(am__mv) $(DEPDIR)/interop_nbdkit_tls_certs_bad_hostname-requires.Tpo $(DEPDIR)/interop_nbdkit_tls_certs_bad_hostname-requires.Po
#	$(AM_V_CC)source='requires.c' object='interop_nbdkit_tls_certs_bad_hostname-requires.o' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interop_nbdkit_tls_certs_bad_hostname_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o interop_nbdkit_tls_certs_bad_hostname-requires.o `test -f 'requires.c' || echo '$(srcdir)/'`requires.c

interop_nbdkit_tls_certs_bad_hostname-requires.obj: requires.c
	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interop_nbdkit_tls_certs_bad_hostname_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT interop_nbdkit_tls_certs_bad_hostname-requires.obj -MD -MP -MF $(DEPDIR)/interop_nbdkit_tls_certs_bad_hostname-requires.Tpo -c -o interop_nbdkit_tls_certs_bad_hostname-requires.obj `if test -f 'requires.c'; then $(CYGPATH_W) 'requires.c'; else $(CYGPATH_W) '$(srcdir)/requires.c'; fi`
	$(AM_V_at)$(am__mv) $(DEPDIR)/interop_nbdkit_tls_certs_bad_hostname-requires.Tpo $(DEPDIR)/interop_nbdkit_tls_certs_bad_hostname-requires.Po
#	$(AM_V_CC)source='requires.c' object='interop_nbdkit_tls_certs_bad_hostname-requires.obj' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interop_nbdkit_tls_certs_bad_hostname_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o interop_nbdkit_tls_certs_bad_hostname-requires.obj `if test -f 'requires.c'; then $(CYGPATH_W) 'requires.c'; else $(CYGPATH_W) '$(srcdir)/requires.c'; fi`

interop_nbdkit_tls_psk-interop.o: interop.c
	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interop_nbdkit_tls_psk_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT interop_nbdkit_tls_psk-interop.o -MD -MP -MF $(DEPDIR)/interop_nbdkit_tls_psk-interop.Tpo -c -o interop_nbdkit_tls_psk-interop.o `test -f 'interop.c' || echo '$(srcdir)/'`interop.c
	$(AM_V_at)$(am__mv) $(DEPDIR)/interop_nbdkit_tls_psk-interop.Tpo $(DEPDIR)/interop_nbdkit_tls_psk-interop.Po
#	$(AM_V_CC)source='interop.c' object='interop_nbdkit_tls_psk-interop.o' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interop_nbdkit_tls_psk_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o interop_nbdkit_tls_psk-interop.o `test -f 'interop.c' || echo '$(srcdir)/'`interop.c

interop_nbdkit_tls_psk-interop.obj: interop.c
	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interop_nbdkit_tls_psk_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT interop_nbdkit_tls_psk-interop.obj -MD -MP -MF $(DEPDIR)/interop_nbdkit_tls_psk-interop.Tpo -c -o interop_nbdkit_tls_psk-interop.obj `if test -f 'interop.c'; then $(CYGPATH_W) 'interop.c'; else $(CYGPATH_W) '$(srcdir)/interop.c'; fi`
	$(AM_V_at)$(am__mv) $(DEPDIR)/interop_nbdkit_tls_psk-interop.Tpo $(DEPDIR)/interop_nbdkit_tls_psk-interop.Po
#	$(AM_V_CC)source='interop.c' object='interop_nbdkit_tls_psk-interop.obj' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interop_nbdkit_tls_psk_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o interop_nbdkit_tls_psk-interop.obj `if test -f 'interop.c'; then $(CYGPATH_W) 'interop.c'; else $(CYGPATH_W) '$(srcdir)/interop.c'; fi`

interop_nbdkit_tls_psk-requires.o: requires.c
	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interop_nbdkit_tls_psk_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT interop_nbdkit_tls_psk-requires.o -MD -MP -MF $(DEPDIR)/interop_nbdkit_tls_psk-requires.Tpo -c -o interop_nbdkit_tls_psk-requires.o `test -f 'requires.c' || echo '$(srcdir)/'`requires.c
	$(AM_V_at)$(am__mv) $(DEPDIR)/interop_nbdkit_tls_psk-requires.Tpo $(DEPDIR)/interop_nbdkit_tls_psk-requires.Po
#	$(AM_V_CC)source='requires.c' object='interop_nbdkit_tls_psk-requires.o' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interop_nbdkit_tls_psk_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o interop_nbdkit_tls_psk-requires.o `test -f 'requires.c' || echo '$(srcdir)/'`requires.c

interop_nbdkit_tls_psk-requires.obj: requires.c
	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interop_nbdkit_tls_psk_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT interop_nbdkit_tls_psk-requires.obj -MD -MP -MF $(DEPDIR)/interop_nbdkit_tls_psk-requires.Tpo -c -o interop_nbdkit_tls_psk-requires.obj `if test -f 'requires.c'; then $(CYGPATH_W) 'requires.c'; else $(CYGPATH_W) '$(srcdir)/requires.c'; fi`
	$(AM_V_at)$(am__mv) $(DEPDIR)/interop_nbdkit_tls_psk-requires.Tpo $(DEPDIR)/interop_nbdkit_tls_psk-requires.Po
#	$(AM_V_CC)source='requires.c' object='interop_nbdkit_tls_psk-requires.obj' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interop_nbdkit_tls_psk_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o interop_nbdkit_tls_psk-requires.obj `if test -f 'requires.c'; then $(CYGPATH_W) 'requires.c'; else $(CYGPATH_W) '$(srcdir)/requires.c'; fi`

interop_nbdkit_tls_psk_allow_enabled-interop.o: interop.c
	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interop_nbdkit_tls_psk_allow_enabled_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT interop_nbdkit_tls_psk_allow_enabled-interop.o -MD -MP -MF $(DEPDIR)/interop_nbdkit_tls_psk_allow_enabled-interop.Tpo -c -o interop_nbdkit_tls_psk_allow_enabled-interop.o `test -f 'interop.c' || echo '$(srcdir)/'`interop.c
	$(AM_V_at)$(am__mv) $(DEPDIR)/interop_nbdkit_tls_psk_allow_enabled-interop.Tpo $(DEPDIR)/interop_nbdkit_tls_psk_allow_enabled-interop.Po
#	$(AM_V_CC)source='interop.c' object='interop_nbdkit_tls_psk_allow_enabled-interop.o' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interop_nbdkit_tls_psk_allow_enabled_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o interop_nbdkit_tls_psk_allow_enabled-interop.o `test -f 'interop.c' || echo '$(srcdir)/'`interop.c

interop_nbdkit_tls_psk_allow_enabled-interop.obj: interop.c
	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interop_nbdkit_tls_psk_allow_enabled_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT interop_nbdkit_tls_psk_allow_enabled-interop.obj -MD -MP -MF $(DEPDIR)/interop_nbdkit_tls_psk_allow_enabled-interop.Tpo -c -o interop_nbdkit_tls_psk_allow_enabled-interop.obj `if test -f 'interop.c'; then $(CYGPATH_W) 'interop.c'; else $(CYGPATH_W) '$(srcdir)/interop.c'; fi`
	$(AM_V_at)$(am__mv) $(DEPDIR)/interop_nbdkit_tls_psk_allow_enabled-interop.Tpo $(DEPDIR)/interop_nbdkit_tls_psk_allow_enabled-interop.Po
#	$(AM_V_CC)source='interop.c' object='interop_nbdkit_tls_psk_allow_enabled-interop.obj' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interop_nbdkit_tls_psk_allow_enabled_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o interop_nbdkit_tls_psk_allow_enabled-interop.obj `if test -f 'interop.c'; then $(CYGPATH_W) 'interop.c'; else $(CYGPATH_W) '$(srcdir)/interop.c'; fi`

interop_nbdkit_tls_psk_allow_enabled-requires.o: requires.c
	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interop_nbdkit_tls_psk_allow_enabled_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT interop_nbdkit_tls_psk_allow_enabled-requires.o -MD -MP -MF $(DEPDIR)/interop_nbdkit_tls_psk_allow_enabled-requires.Tpo -c -o interop_nbdkit_tls_psk_allow_enabled-requires.o `test -f 'requires.c' || echo '$(srcdir)/'`requires.c
	$(AM_V_at)$(am__mv) $(DEPDIR)/interop_nbdkit_tls_psk_allow_enabled-requires.Tpo $(DEPDIR)/interop_nbdkit_tls_psk_allow_enabled-requires.Po
#	$(AM_V_CC)source='requires.c' object='interop_nbdkit_tls_psk_allow_enabled-requires.o' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interop_nbdkit_tls_psk_allow_enabled_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o interop_nbdkit_tls_psk_allow_enabled-requires.o `test -f 'requires.c' || echo '$(srcdir)/'`requires.c

interop_nbdkit_tls_psk_allow_enabled-requires.obj: requires.c
	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interop_nbdkit_tls_psk_allow_enabled_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT interop_nbdkit_tls_psk_allow_enabled-requires.obj -MD -MP -MF $(DEPDIR)/interop_nbdkit_tls_psk_allow_enabled-requires.Tpo -c -o interop_nbdkit_tls_psk_allow_enabled-requires.obj `if test -f 'requires.c'; then $(CYGPATH_W) 'requires.c'; else $(CYGPATH_W) '$(srcdir)/requires.c'; fi`
	$(AM_V_at)$(am__mv) $(DEPDIR)/interop_nbdkit_tls_psk_allow_enabled-requires.Tpo $(DEPDIR)/interop_nbdkit_tls_psk_allow_enabled-requires.Po
#	$(AM_V_CC)source='requires.c' object='interop_nbdkit_tls_psk_allow_enabled-requires.obj' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interop_nbdkit_tls_psk_allow_enabled_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o interop_nbdkit_tls_psk_allow_enabled-requires.obj `if test -f 'requires.c'; then $(CYGPATH_W) 'requires.c'; else $(CYGPATH_W) '$(srcdir)/requires.c'; fi`

interop_nbdkit_tls_psk_allow_fallback-interop.o: interop.c
	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interop_nbdkit_tls_psk_allow_fallback_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT interop_nbdkit_tls_psk_allow_fallback-interop.o -MD -MP -MF $(DEPDIR)/interop_nbdkit_tls_psk_allow_fallback-interop.Tpo -c -o interop_nbdkit_tls_psk_allow_fallback-interop.o `test -f 'interop.c' || echo '$(srcdir)/'`interop.c
	$(AM_V_at)$(am__mv) $(DEPDIR)/interop_nbdkit_tls_psk_allow_fallback-interop.Tpo $(DEPDIR)/interop_nbdkit_tls_psk_allow_fallback-interop.Po
#	$(AM_V_CC)source='interop.c' object='interop_nbdkit_tls_psk_allow_fallback-interop.o' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interop_nbdkit_tls_psk_allow_fallback_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o interop_nbdkit_tls_psk_allow_fallback-interop.o `test -f 'interop.c' || echo '$(srcdir)/'`interop.c

interop_nbdkit_tls_psk_allow_fallback-interop.obj: interop.c
	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interop_nbdkit_tls_psk_allow_fallback_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT interop_nbdkit_tls_psk_allow_fallback-interop.obj -MD -MP -MF $(DEPDIR)/interop_nbdkit_tls_psk_allow_fallback-interop.Tpo -c -o interop_nbdkit_tls_psk_allow_fallback-interop.obj `if test -f 'interop.c'; then $(CYGPATH_W) 'interop.c'; else $(CYGPATH_W) '$(srcdir)/interop.c'; fi`
	$(AM_V_at)$(am__mv) $(DEPDIR)/interop_nbdkit_tls_psk_allow_fallback-interop.Tpo $(DEPDIR)/interop_nbdkit_tls_psk_allow_fallback-interop.Po
#	$(AM_V_CC)source='interop.c' object='interop_nbdkit_tls_psk_allow_fallback-interop.obj' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interop_nbdkit_tls_psk_allow_fallback_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o interop_nbdkit_tls_psk_allow_fallback-interop.obj `if test -f 'interop.c'; then $(CYGPATH_W) 'interop.c'; else $(CYGPATH_W) '$(srcdir)/interop.c'; fi`

interop_nbdkit_tls_psk_allow_fallback-requires.o: requires.c
	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interop_nbdkit_tls_psk_allow_fallback_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT interop_nbdkit_tls_psk_allow_fallback-requires.o -MD -MP -MF $(DEPDIR)/interop_nbdkit_tls_psk_allow_fallback-requires.Tpo -c -o interop_nbdkit_tls_psk_allow_fallback-requires.o `test -f 'requires.c' || echo '$(srcdir)/'`requires.c
	$(AM_V_at)$(am__mv) $(DEPDIR)/interop_nbdkit_tls_psk_allow_fallback-requires.Tpo $(DEPDIR)/interop_nbdkit_tls_psk_allow_fallback-requires.Po
#	$(AM_V_CC)source='requires.c' object='interop_nbdkit_tls_psk_allow_fallback-requires.o' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interop_nbdkit_tls_psk_allow_fallback_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o interop_nbdkit_tls_psk_allow_fallback-requires.o `test -f 'requires.c' || echo '$(srcdir)/'`requires.c

interop_nbdkit_tls_psk_allow_fallback-requires.obj: requires.c
	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interop_nbdkit_tls_psk_allow_fallback_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT interop_nbdkit_tls_psk_allow_fallback-requires.obj -MD -MP -MF $(DEPDIR)/interop_nbdkit_tls_psk_allow_fallback-requires.Tpo -c -o interop_nbdkit_tls_psk_allow_fallback-requires.obj `if test -f 'requires.c'; then $(CYGPATH_W) 'requires.c'; else $(CYGPATH_W) '$(srcdir)/requires.c'; fi`
	$(AM_V_at)$(am__mv) $(DEPDIR)/interop_nbdkit_tls_psk_allow_fallback-requires.Tpo $(DEPDIR)/interop_nbdkit_tls_psk_allow_fallback-requires.Po
#	$(AM_V_CC)source='requires.c' object='interop_nbdkit_tls_psk_allow_fallback-requires.obj' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interop_nbdkit_tls_psk_allow_fallback_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o interop_nbdkit_tls_psk_allow_fallback-requires.obj `if test -f 'requires.c'; then $(CYGPATH_W) 'requires.c'; else $(CYGPATH_W) '$(srcdir)/requires.c'; fi`

interop_qemu_nbd-interop.o: interop.c
	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interop_qemu_nbd_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT interop_qemu_nbd-interop.o -MD -MP -MF $(DEPDIR)/interop_qemu_nbd-interop.Tpo -c -o interop_qemu_nbd-interop.o `test -f 'interop.c' || echo '$(srcdir)/'`interop.c
	$(AM_V_at)$(am__mv) $(DEPDIR)/interop_qemu_nbd-interop.Tpo $(DEPDIR)/interop_qemu_nbd-interop.Po
#	$(AM_V_CC)source='interop.c' object='interop_qemu_nbd-interop.o' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interop_qemu_nbd_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o interop_qemu_nbd-interop.o `test -f 'interop.c' || echo '$(srcdir)/'`interop.c

interop_qemu_nbd-interop.obj: interop.c
	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interop_qemu_nbd_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT interop_qemu_nbd-interop.obj -MD -MP -MF $(DEPDIR)/interop_qemu_nbd-interop.Tpo -c -o interop_qemu_nbd-interop.obj `if test -f 'interop.c'; then $(CYGPATH_W) 'interop.c'; else $(CYGPATH_W) '$(srcdir)/interop.c'; fi`
	$(AM_V_at)$(am__mv) $(DEPDIR)/interop_qemu_nbd-interop.Tpo $(DEPDIR)/interop_qemu_nbd-interop.Po
#	$(AM_V_CC)source='interop.c' object='interop_qemu_nbd-interop.obj' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interop_qemu_nbd_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o interop_qemu_nbd-interop.obj `if test -f 'interop.c'; then $(CYGPATH_W) 'interop.c'; else $(CYGPATH_W) '$(srcdir)/interop.c'; fi`

interop_qemu_nbd-requires.o: requires.c
	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interop_qemu_nbd_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT interop_qemu_nbd-requires.o -MD -MP -MF $(DEPDIR)/interop_qemu_nbd-requires.Tpo -c -o interop_qemu_nbd-requires.o `test -f 'requires.c' || echo '$(srcdir)/'`requires.c
	$(AM_V_at)$(am__mv) $(DEPDIR)/interop_qemu_nbd-requires.Tpo $(DEPDIR)/interop_qemu_nbd-requires.Po
#	$(AM_V_CC)source='requires.c' object='interop_qemu_nbd-requires.o' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interop_qemu_nbd_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o interop_qemu_nbd-requires.o `test -f 'requires.c' || echo '$(srcdir)/'`requires.c

interop_qemu_nbd-requires.obj: requires.c
	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interop_qemu_nbd_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT interop_qemu_nbd-requires.obj -MD -MP -MF $(DEPDIR)/interop_qemu_nbd-requires.Tpo -c -o interop_qemu_nbd-requires.obj `if test -f 'requires.c'; then $(CYGPATH_W) 'requires.c'; else $(CYGPATH_W) '$(srcdir)/requires.c'; fi`
	$(AM_V_at)$(am__mv) $(DEPDIR)/interop_qemu_nbd-requires.Tpo $(DEPDIR)/interop_qemu_nbd-requires.Po
#	$(AM_V_CC)source='requires.c' object='interop_qemu_nbd-requires.obj' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interop_qemu_nbd_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o interop_qemu_nbd-requires.obj `if test -f 'requires.c'; then $(CYGPATH_W) 'requires.c'; else $(CYGPATH_W) '$(srcdir)/requires.c'; fi`

interop_qemu_nbd_tls_certs-interop.o: interop.c
	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interop_qemu_nbd_tls_certs_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT interop_qemu_nbd_tls_certs-interop.o -MD -MP -MF $(DEPDIR)/interop_qemu_nbd_tls_certs-interop.Tpo -c -o interop_qemu_nbd_tls_certs-interop.o `test -f 'interop.c' || echo '$(srcdir)/'`interop.c
	$(AM_V_at)$(am__mv) $(DEPDIR)/interop_qemu_nbd_tls_certs-interop.Tpo $(DEPDIR)/interop_qemu_nbd_tls_certs-interop.Po
#	$(AM_V_CC)source='interop.c' object='interop_qemu_nbd_tls_certs-interop.o' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interop_qemu_nbd_tls_certs_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o interop_qemu_nbd_tls_certs-interop.o `test -f 'interop.c' || echo '$(srcdir)/'`interop.c

interop_qemu_nbd_tls_certs-interop.obj: interop.c
	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interop_qemu_nbd_tls_certs_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT interop_qemu_nbd_tls_certs-interop.obj -MD -MP -MF $(DEPDIR)/interop_qemu_nbd_tls_certs-interop.Tpo -c -o interop_qemu_nbd_tls_certs-interop.obj `if test -f 'interop.c'; then $(CYGPATH_W) 'interop.c'; else $(CYGPATH_W) '$(srcdir)/interop.c'; fi`
	$(AM_V_at)$(am__mv) $(DEPDIR)/interop_qemu_nbd_tls_certs-interop.Tpo $(DEPDIR)/interop_qemu_nbd_tls_certs-interop.Po
#	$(AM_V_CC)source='interop.c' object='interop_qemu_nbd_tls_certs-interop.obj' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interop_qemu_nbd_tls_certs_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o interop_qemu_nbd_tls_certs-interop.obj `if test -f 'interop.c'; then $(CYGPATH_W) 'interop.c'; else $(CYGPATH_W) '$(srcdir)/interop.c'; fi`

interop_qemu_nbd_tls_certs-requires.o: requires.c
	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interop_qemu_nbd_tls_certs_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT interop_qemu_nbd_tls_certs-requires.o -MD -MP -MF $(DEPDIR)/interop_qemu_nbd_tls_certs-requires.Tpo -c -o interop_qemu_nbd_tls_certs-requires.o `test -f 'requires.c' || echo '$(srcdir)/'`requires.c
	$(AM_V_at)$(am__mv) $(DEPDIR)/interop_qemu_nbd_tls_certs-requires.Tpo $(DEPDIR)/interop_qemu_nbd_tls_certs-requires.Po
#	$(AM_V_CC)source='requires.c' object='interop_qemu_nbd_tls_certs-requires.o' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interop_qemu_nbd_tls_certs_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o interop_qemu_nbd_tls_certs-requires.o `test -f 'requires.c' || echo '$(srcdir)/'`requires.c

interop_qemu_nbd_tls_certs-requires.obj: requires.c
	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interop_qemu_nbd_tls_certs_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT interop_qemu_nbd_tls_certs-requires.obj -MD -MP -MF $(DEPDIR)/interop_qemu_nbd_tls_certs-requires.Tpo -c -o interop_qemu_nbd_tls_certs-requires.obj `if test -f 'requires.c'; then $(CYGPATH_W) 'requires.c'; else $(CYGPATH_W) '$(srcdir)/requires.c'; fi`
	$(AM_V_at)$(am__mv) $(DEPDIR)/interop_qemu_nbd_tls_certs-requires.Tpo $(DEPDIR)/interop_qemu_nbd_tls_certs-requires.Po
#	$(AM_V_CC)source='requires.c' object='interop_qemu_nbd_tls_certs-requires.obj' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interop_qemu_nbd_tls_certs_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o interop_qemu_nbd_tls_certs-requires.obj `if test -f 'requires.c'; then $(CYGPATH_W) 'requires.c'; else $(CYGPATH_W) '$(srcdir)/requires.c'; fi`

interop_qemu_nbd_tls_psk-interop.o: interop.c
	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interop_qemu_nbd_tls_psk_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT interop_qemu_nbd_tls_psk-interop.o -MD -MP -MF $(DEPDIR)/interop_qemu_nbd_tls_psk-interop.Tpo -c -o interop_qemu_nbd_tls_psk-interop.o `test -f 'interop.c' || echo '$(srcdir)/'`interop.c
	$(AM_V_at)$(am__mv) $(DEPDIR)/interop_qemu_nbd_tls_psk-interop.Tpo $(DEPDIR)/interop_qemu_nbd_tls_psk-interop.Po
#	$(AM_V_CC)source='interop.c' object='interop_qemu_nbd_tls_psk-interop.o' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interop_qemu_nbd_tls_psk_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o interop_qemu_nbd_tls_psk-interop.o `test -f 'interop.c' || echo '$(srcdir)/'`interop.c

interop_qemu_nbd_tls_psk-interop.obj: interop.c
	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interop_qemu_nbd_tls_psk_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT interop_qemu_nbd_tls_psk-interop.obj -MD -MP -MF $(DEPDIR)/interop_qemu_nbd_tls_psk-interop.Tpo -c -o interop_qemu_nbd_tls_psk-interop.obj `if test -f 'interop.c'; then $(CYGPATH_W) 'interop.c'; else $(CYGPATH_W) '$(srcdir)/interop.c'; fi`
	$(AM_V_at)$(am__mv) $(DEPDIR)/interop_qemu_nbd_tls_psk-interop.Tpo $(DEPDIR)/interop_qemu_nbd_tls_psk-interop.Po
#	$(AM_V_CC)source='interop.c' object='interop_qemu_nbd_tls_psk-interop.obj' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interop_qemu_nbd_tls_psk_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o interop_qemu_nbd_tls_psk-interop.obj `if test -f 'interop.c'; then $(CYGPATH_W) 'interop.c'; else $(CYGPATH_W) '$(srcdir)/interop.c'; fi`

interop_qemu_nbd_tls_psk-requires.o: requires.c
	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interop_qemu_nbd_tls_psk_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT interop_qemu_nbd_tls_psk-requires.o -MD -MP -MF $(DEPDIR)/interop_qemu_nbd_tls_psk-requires.Tpo -c -o interop_qemu_nbd_tls_psk-requires.o `test -f 'requires.c' || echo '$(srcdir)/'`requires.c
	$(AM_V_at)$(am__mv) $(DEPDIR)/interop_qemu_nbd_tls_psk-requires.Tpo $(DEPDIR)/interop_qemu_nbd_tls_psk-requires.Po
#	$(AM_V_CC)source='requires.c' object='interop_qemu_nbd_tls_psk-requires.o' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interop_qemu_nbd_tls_psk_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o interop_qemu_nbd_tls_psk-requires.o `test -f 'requires.c' || echo '$(srcdir)/'`requires.c

interop_qemu_nbd_tls_psk-requires.obj: requires.c
	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interop_qemu_nbd_tls_psk_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT interop_qemu_nbd_tls_psk-requires.obj -MD -MP -MF $(DEPDIR)/interop_qemu_nbd_tls_psk-requires.Tpo -c -o interop_qemu_nbd_tls_psk-requires.obj `if test -f 'requires.c'; then $(CYGPATH_W) 'requires.c'; else $(CYGPATH_W) '$(srcdir)/requires.c'; fi`
	$(AM_V_at)$(am__mv) $(DEPDIR)/interop_qemu_nbd_tls_psk-requires.Tpo $(DEPDIR)/interop_qemu_nbd_tls_psk-requires.Po
#	$(AM_V_CC)source='requires.c' object='interop_qemu_nbd_tls_psk-requires.obj' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interop_qemu_nbd_tls_psk_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o interop_qemu_nbd_tls_psk-requires.obj `if test -f 'requires.c'; then $(CYGPATH_W) 'requires.c'; else $(CYGPATH_W) '$(srcdir)/requires.c'; fi`

list_exports_nbd_server-list-exports.o: list-exports.c
	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(list_exports_nbd_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT list_exports_nbd_server-list-exports.o -MD -MP -MF $(DEPDIR)/list_exports_nbd_server-list-exports.Tpo -c -o list_exports_nbd_server-list-exports.o `test -f 'list-exports.c' || echo '$(srcdir)/'`list-exports.c
	$(AM_V_at)$(am__mv) $(DEPDIR)/list_exports_nbd_server-list-exports.Tpo $(DEPDIR)/list_exports_nbd_server-list-exports.Po
#	$(AM_V_CC)source='list-exports.c' object='list_exports_nbd_server-list-exports.o' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(list_exports_nbd_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o list_exports_nbd_server-list-exports.o `test -f 'list-exports.c' || echo '$(srcdir)/'`list-exports.c

list_exports_nbd_server-list-exports.obj: list-exports.c
	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(list_exports_nbd_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT list_exports_nbd_server-list-exports.obj -MD -MP -MF $(DEPDIR)/list_exports_nbd_server-list-exports.Tpo -c -o list_exports_nbd_server-list-exports.obj `if test -f 'list-exports.c'; then $(CYGPATH_W) 'list-exports.c'; else $(CYGPATH_W) '$(srcdir)/list-exports.c'; fi`
	$(AM_V_at)$(am__mv) $(DEPDIR)/list_exports_nbd_server-list-exports.Tpo $(DEPDIR)/list_exports_nbd_server-list-exports.Po
#	$(AM_V_CC)source='list-exports.c' object='list_exports_nbd_server-list-exports.obj' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(list_exports_nbd_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o list_exports_nbd_server-list-exports.obj `if test -f 'list-exports.c'; then $(CYGPATH_W) 'list-exports.c'; else $(CYGPATH_W) '$(srcdir)/list-exports.c'; fi`

list_exports_nbd_server-requires.o: requires.c
	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(list_exports_nbd_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT list_exports_nbd_server-requires.o -MD -MP -MF $(DEPDIR)/list_exports_nbd_server-requires.Tpo -c -o list_exports_nbd_server-requires.o `test -f 'requires.c' || echo '$(srcdir)/'`requires.c
	$(AM_V_at)$(am__mv) $(DEPDIR)/list_exports_nbd_server-requires.Tpo $(DEPDIR)/list_exports_nbd_server-requires.Po
#	$(AM_V_CC)source='requires.c' object='list_exports_nbd_server-requires.o' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(list_exports_nbd_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o list_exports_nbd_server-requires.o `test -f 'requires.c' || echo '$(srcdir)/'`requires.c

list_exports_nbd_server-requires.obj: requires.c
	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(list_exports_nbd_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT list_exports_nbd_server-requires.obj -MD -MP -MF $(DEPDIR)/list_exports_nbd_server-requires.Tpo -c -o list_exports_nbd_server-requires.obj `if test -f 'requires.c'; then $(CYGPATH_W) 'requires.c'; else $(CYGPATH_W) '$(srcdir)/requires.c'; fi`
	$(AM_V_at)$(am__mv) $(DEPDIR)/list_exports_nbd_server-requires.Tpo $(DEPDIR)/list_exports_nbd_server-requires.Po
#	$(AM_V_CC)source='requires.c' object='list_exports_nbd_server-requires.obj' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(list_exports_nbd_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o list_exports_nbd_server-requires.obj `if test -f 'requires.c'; then $(CYGPATH_W) 'requires.c'; else $(CYGPATH_W) '$(srcdir)/requires.c'; fi`

list_exports_nbdkit-list-exports.o: list-exports.c
	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(list_exports_nbdkit_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT list_exports_nbdkit-list-exports.o -MD -MP -MF $(DEPDIR)/list_exports_nbdkit-list-exports.Tpo -c -o list_exports_nbdkit-list-exports.o `test -f 'list-exports.c' || echo '$(srcdir)/'`list-exports.c
	$(AM_V_at)$(am__mv) $(DEPDIR)/list_exports_nbdkit-list-exports.Tpo $(DEPDIR)/list_exports_nbdkit-list-exports.Po
#	$(AM_V_CC)source='list-exports.c' object='list_exports_nbdkit-list-exports.o' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(list_exports_nbdkit_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o list_exports_nbdkit-list-exports.o `test -f 'list-exports.c' || echo '$(srcdir)/'`list-exports.c

list_exports_nbdkit-list-exports.obj: list-exports.c
	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(list_exports_nbdkit_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT list_exports_nbdkit-list-exports.obj -MD -MP -MF $(DEPDIR)/list_exports_nbdkit-list-exports.Tpo -c -o list_exports_nbdkit-list-exports.obj `if test -f 'list-exports.c'; then $(CYGPATH_W) 'list-exports.c'; else $(CYGPATH_W) '$(srcdir)/list-exports.c'; fi`
	$(AM_V_at)$(am__mv) $(DEPDIR)/list_exports_nbdkit-list-exports.Tpo $(DEPDIR)/list_exports_nbdkit-list-exports.Po
#	$(AM_V_CC)source='list-exports.c' object='list_exports_nbdkit-list-exports.obj' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(list_exports_nbdkit_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o list_exports_nbdkit-list-exports.obj `if test -f 'list-exports.c'; then $(CYGPATH_W) 'list-exports.c'; else $(CYGPATH_W) '$(srcdir)/list-exports.c'; fi`

list_exports_nbdkit-requires.o: requires.c
	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(list_exports_nbdkit_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT list_exports_nbdkit-requires.o -MD -MP -MF $(DEPDIR)/list_exports_nbdkit-requires.Tpo -c -o list_exports_nbdkit-requires.o `test -f 'requires.c' || echo '$(srcdir)/'`requires.c
	$(AM_V_at)$(am__mv) $(DEPDIR)/list_exports_nbdkit-requires.Tpo $(DEPDIR)/list_exports_nbdkit-requires.Po
#	$(AM_V_CC)source='requires.c' object='list_exports_nbdkit-requires.o' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(list_exports_nbdkit_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o list_exports_nbdkit-requires.o `test -f 'requires.c' || echo '$(srcdir)/'`requires.c

list_exports_nbdkit-requires.obj: requires.c
	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(list_exports_nbdkit_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT list_exports_nbdkit-requires.obj -MD -MP -MF $(DEPDIR)/list_exports_nbdkit-requires.Tpo -c -o list_exports_nbdkit-requires.obj `if test -f 'requires.c'; then $(CYGPATH_W) 'requires.c'; else $(CYGPATH_W) '$(srcdir)/requires.c'; fi`
	$(AM_V_at)$(am__mv) $(DEPDIR)/list_exports_nbdkit-requires.Tpo $(DEPDIR)/list_exports_nbdkit-requires.Po
#	$(AM_V_CC)source='requires.c' object='list_exports_nbdkit-requires.obj' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(list_exports_nbdkit_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o list_exports_nbdkit-requires.obj `if test -f 'requires.c'; then $(CYGPATH_W) 'requires.c'; else $(CYGPATH_W) '$(srcdir)/requires.c'; fi`

list_exports_qemu_nbd-list-exports.o: list-exports.c
	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(list_exports_qemu_nbd_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT list_exports_qemu_nbd-list-exports.o -MD -MP -MF $(DEPDIR)/list_exports_qemu_nbd-list-exports.Tpo -c -o list_exports_qemu_nbd-list-exports.o `test -f 'list-exports.c' || echo '$(srcdir)/'`list-exports.c
	$(AM_V_at)$(am__mv) $(DEPDIR)/list_exports_qemu_nbd-list-exports.Tpo $(DEPDIR)/list_exports_qemu_nbd-list-exports.Po
#	$(AM_V_CC)source='list-exports.c' object='list_exports_qemu_nbd-list-exports.o' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(list_exports_qemu_nbd_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o list_exports_qemu_nbd-list-exports.o `test -f 'list-exports.c' || echo '$(srcdir)/'`list-exports.c

list_exports_qemu_nbd-list-exports.obj: list-exports.c
	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(list_exports_qemu_nbd_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT list_exports_qemu_nbd-list-exports.obj -MD -MP -MF $(DEPDIR)/list_exports_qemu_nbd-list-exports.Tpo -c -o list_exports_qemu_nbd-list-exports.obj `if test -f 'list-exports.c'; then $(CYGPATH_W) 'list-exports.c'; else $(CYGPATH_W) '$(srcdir)/list-exports.c'; fi`
	$(AM_V_at)$(am__mv) $(DEPDIR)/list_exports_qemu_nbd-list-exports.Tpo $(DEPDIR)/list_exports_qemu_nbd-list-exports.Po
#	$(AM_V_CC)source='list-exports.c' object='list_exports_qemu_nbd-list-exports.obj' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(list_exports_qemu_nbd_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o list_exports_qemu_nbd-list-exports.obj `if test -f 'list-exports.c'; then $(CYGPATH_W) 'list-exports.c'; else $(CYGPATH_W) '$(srcdir)/list-exports.c'; fi`

list_exports_qemu_nbd-requires.o: requires.c
	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(list_exports_qemu_nbd_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT list_exports_qemu_nbd-requires.o -MD -MP -MF $(DEPDIR)/list_exports_qemu_nbd-requires.Tpo -c -o list_exports_qemu_nbd-requires.o `test -f 'requires.c' || echo '$(srcdir)/'`requires.c
	$(AM_V_at)$(am__mv) $(DEPDIR)/list_exports_qemu_nbd-requires.Tpo $(DEPDIR)/list_exports_qemu_nbd-requires.Po
#	$(AM_V_CC)source='requires.c' object='list_exports_qemu_nbd-requires.o' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(list_exports_qemu_nbd_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o list_exports_qemu_nbd-requires.o `test -f 'requires.c' || echo '$(srcdir)/'`requires.c

list_exports_qemu_nbd-requires.obj: requires.c
	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(list_exports_qemu_nbd_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT list_exports_qemu_nbd-requires.obj -MD -MP -MF $(DEPDIR)/list_exports_qemu_nbd-requires.Tpo -c -o list_exports_qemu_nbd-requires.obj `if test -f 'requires.c'; then $(CYGPATH_W) 'requires.c'; else $(CYGPATH_W) '$(srcdir)/requires.c'; fi`
	$(AM_V_at)$(am__mv) $(DEPDIR)/list_exports_qemu_nbd-requires.Tpo $(DEPDIR)/list_exports_qemu_nbd-requires.Po
#	$(AM_V_CC)source='requires.c' object='list_exports_qemu_nbd-requires.obj' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(list_exports_qemu_nbd_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o list_exports_qemu_nbd-requires.obj `if test -f 'requires.c'; then $(CYGPATH_W) 'requires.c'; else $(CYGPATH_W) '$(srcdir)/requires.c'; fi`

socket_activation_nbdkit-socket-activation.o: socket-activation.c
	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(socket_activation_nbdkit_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT socket_activation_nbdkit-socket-activation.o -MD -MP -MF $(DEPDIR)/socket_activation_nbdkit-socket-activation.Tpo -c -o socket_activation_nbdkit-socket-activation.o `test -f 'socket-activation.c' || echo '$(srcdir)/'`socket-activation.c
	$(AM_V_at)$(am__mv) $(DEPDIR)/socket_activation_nbdkit-socket-activation.Tpo $(DEPDIR)/socket_activation_nbdkit-socket-activation.Po
#	$(AM_V_CC)source='socket-activation.c' object='socket_activation_nbdkit-socket-activation.o' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(socket_activation_nbdkit_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o socket_activation_nbdkit-socket-activation.o `test -f 'socket-activation.c' || echo '$(srcdir)/'`socket-activation.c

socket_activation_nbdkit-socket-activation.obj: socket-activation.c
	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(socket_activation_nbdkit_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT socket_activation_nbdkit-socket-activation.obj -MD -MP -MF $(DEPDIR)/socket_activation_nbdkit-socket-activation.Tpo -c -o socket_activation_nbdkit-socket-activation.obj `if test -f 'socket-activation.c'; then $(CYGPATH_W) 'socket-activation.c'; else $(CYGPATH_W) '$(srcdir)/socket-activation.c'; fi`
	$(AM_V_at)$(am__mv) $(DEPDIR)/socket_activation_nbdkit-socket-activation.Tpo $(DEPDIR)/socket_activation_nbdkit-socket-activation.Po
#	$(AM_V_CC)source='socket-activation.c' object='socket_activation_nbdkit-socket-activation.obj' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(socket_activation_nbdkit_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o socket_activation_nbdkit-socket-activation.obj `if test -f 'socket-activation.c'; then $(CYGPATH_W) 'socket-activation.c'; else $(CYGPATH_W) '$(srcdir)/socket-activation.c'; fi`

socket_activation_qemu_nbd-socket-activation.o: socket-activation.c
	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(socket_activation_qemu_nbd_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT socket_activation_qemu_nbd-socket-activation.o -MD -MP -MF $(DEPDIR)/socket_activation_qemu_nbd-socket-activation.Tpo -c -o socket_activation_qemu_nbd-socket-activation.o `test -f 'socket-activation.c' || echo '$(srcdir)/'`socket-activation.c
	$(AM_V_at)$(am__mv) $(DEPDIR)/socket_activation_qemu_nbd-socket-activation.Tpo $(DEPDIR)/socket_activation_qemu_nbd-socket-activation.Po
#	$(AM_V_CC)source='socket-activation.c' object='socket_activation_qemu_nbd-socket-activation.o' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(socket_activation_qemu_nbd_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o socket_activation_qemu_nbd-socket-activation.o `test -f 'socket-activation.c' || echo '$(srcdir)/'`socket-activation.c

socket_activation_qemu_nbd-socket-activation.obj: socket-activation.c
	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(socket_activation_qemu_nbd_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT socket_activation_qemu_nbd-socket-activation.obj -MD -MP -MF $(DEPDIR)/socket_activation_qemu_nbd-socket-activation.Tpo -c -o socket_activation_qemu_nbd-socket-activation.obj `if test -f 'socket-activation.c'; then $(CYGPATH_W) 'socket-activation.c'; else $(CYGPATH_W) '$(srcdir)/socket-activation.c'; fi`
	$(AM_V_at)$(am__mv) $(DEPDIR)/socket_activation_qemu_nbd-socket-activation.Tpo $(DEPDIR)/socket_activation_qemu_nbd-socket-activation.Po
#	$(AM_V_CC)source='socket-activation.c' object='socket_activation_qemu_nbd-socket-activation.obj' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(socket_activation_qemu_nbd_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o socket_activation_qemu_nbd-socket-activation.obj `if test -f 'socket-activation.c'; then $(CYGPATH_W) 'socket-activation.c'; else $(CYGPATH_W) '$(srcdir)/socket-activation.c'; fi`

mostlyclean-libtool:
	-rm -f *.lo

clean-libtool:
	-rm -rf .libs _libs

ID: $(am__tagged_files)
	$(am__define_uniq_tagged_files); mkid -fID $$unique
tags: tags-am
TAGS: tags

tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
	set x; \
	here=`pwd`; \
	$(am__define_uniq_tagged_files); \
	shift; \
	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
	  test -n "$$unique" || unique=$$empty_fix; \
	  if test $$# -gt 0; then \
	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
	      "$$@" $$unique; \
	  else \
	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
	      $$unique; \
	  fi; \
	fi
ctags: ctags-am

CTAGS: ctags
ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
	$(am__define_uniq_tagged_files); \
	test -z "$(CTAGS_ARGS)$$unique" \
	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
	     $$unique

GTAGS:
	here=`$(am__cd) $(top_builddir) && pwd` \
	  && $(am__cd) $(top_srcdir) \
	  && gtags -i $(GTAGS_ARGS) "$$here"
cscopelist: cscopelist-am

cscopelist-am: $(am__tagged_files)
	list='$(am__tagged_files)'; \
	case "$(srcdir)" in \
	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
	  *) sdir=$(subdir)/$(srcdir) ;; \
	esac; \
	for i in $$list; do \
	  if test -f "$$i"; then \
	    echo "$(subdir)/$$i"; \
	  else \
	    echo "$$sdir/$$i"; \
	  fi; \
	done >> $(top_builddir)/cscope.files

distclean-tags:
	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags

# Recover from deleted '.trs' file; this should ensure that
# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create
# both 'foo.log' and 'foo.trs'.  Break the recipe in two subshells
# to avoid problems with "make -n".
.log.trs:
	rm -f $< $@
	$(MAKE) $(AM_MAKEFLAGS) $<

# Leading 'am--fnord' is there to ensure the list of targets does not
# expand to empty, as could happen e.g. with make check TESTS=''.
am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck)
am--force-recheck:
	@:

$(TEST_SUITE_LOG): $(TEST_LOGS)
	@$(am__set_TESTS_bases); \
	am__f_ok () { test -f "$$1" && test -r "$$1"; }; \
	redo_bases=`for i in $$bases; do \
	              am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \
	            done`; \
	if test -n "$$redo_bases"; then \
	  redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \
	  redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \
	  if $(am__make_dryrun); then :; else \
	    rm -f $$redo_logs && rm -f $$redo_results || exit 1; \
	  fi; \
	fi; \
	if test -n "$$am__remaking_logs"; then \
	  echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \
	       "recursion detected" >&2; \
	elif test -n "$$redo_logs"; then \
	  am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \
	fi; \
	if $(am__make_dryrun); then :; else \
	  st=0;  \
	  errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \
	  for i in $$redo_bases; do \
	    test -f $$i.trs && test -r $$i.trs \
	      || { echo "$$errmsg $$i.trs" >&2; st=1; }; \
	    test -f $$i.log && test -r $$i.log \
	      || { echo "$$errmsg $$i.log" >&2; st=1; }; \
	  done; \
	  test $$st -eq 0 || exit 1; \
	fi
	@$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \
	ws='[ 	]'; \
	results=`for b in $$bases; do echo $$b.trs; done`; \
	test -n "$$results" || results=/dev/null; \
	all=`  grep "^$$ws*:test-result:"           $$results | wc -l`; \
	pass=` grep "^$$ws*:test-result:$$ws*PASS"  $$results | wc -l`; \
	fail=` grep "^$$ws*:test-result:$$ws*FAIL"  $$results | wc -l`; \
	skip=` grep "^$$ws*:test-result:$$ws*SKIP"  $$results | wc -l`; \
	xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \
	xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \
	error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \
	if test `expr $$fail + $$xpass + $$error` -eq 0; then \
	  success=true; \
	else \
	  success=false; \
	fi; \
	br='==================='; br=$$br$$br$$br$$br; \
	result_count () \
	{ \
	    if test x"$$1" = x"--maybe-color"; then \
	      maybe_colorize=yes; \
	    elif test x"$$1" = x"--no-color"; then \
	      maybe_colorize=no; \
	    else \
	      echo "$@: invalid 'result_count' usage" >&2; exit 4; \
	    fi; \
	    shift; \
	    desc=$$1 count=$$2; \
	    if test $$maybe_colorize = yes && test $$count -gt 0; then \
	      color_start=$$3 color_end=$$std; \
	    else \
	      color_start= color_end=; \
	    fi; \
	    echo "$${color_start}# $$desc $$count$${color_end}"; \
	}; \
	create_testsuite_report () \
	{ \
	  result_count $$1 "TOTAL:" $$all   "$$brg"; \
	  result_count $$1 "PASS: " $$pass  "$$grn"; \
	  result_count $$1 "SKIP: " $$skip  "$$blu"; \
	  result_count $$1 "XFAIL:" $$xfail "$$lgn"; \
	  result_count $$1 "FAIL: " $$fail  "$$red"; \
	  result_count $$1 "XPASS:" $$xpass "$$red"; \
	  result_count $$1 "ERROR:" $$error "$$mgn"; \
	}; \
	{								\
	  echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" |	\
	    $(am__rst_title);						\
	  create_testsuite_report --no-color;				\
	  echo;								\
	  echo ".. contents:: :depth: 2";				\
	  echo;								\
	  for b in $$bases; do echo $$b; done				\
	    | $(am__create_global_log);					\
	} >$(TEST_SUITE_LOG).tmp || exit 1;				\
	mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG);			\
	if $$success; then						\
	  col="$$grn";							\
	 else								\
	  col="$$red";							\
	  test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG);		\
	fi;								\
	echo "$${col}$$br$${std}"; 					\
	echo "$${col}Testsuite summary"$(AM_TESTSUITE_SUMMARY_HEADER)"$${std}";	\
	echo "$${col}$$br$${std}"; 					\
	create_testsuite_report --maybe-color;				\
	echo "$$col$$br$$std";						\
	if $$success; then :; else					\
	  echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}";		\
	  if test -n "$(PACKAGE_BUGREPORT)"; then			\
	    echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}";	\
	  fi;								\
	  echo "$$col$$br$$std";					\
	fi;								\
	$$success || exit 1

check-TESTS: $(check_PROGRAMS)
	@list='$(RECHECK_LOGS)';           test -z "$$list" || rm -f $$list
	@list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list
	@test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
	@set +e; $(am__set_TESTS_bases); \
	log_list=`for i in $$bases; do echo $$i.log; done`; \
	trs_list=`for i in $$bases; do echo $$i.trs; done`; \
	log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \
	$(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \
	exit $$?;
recheck: all $(check_PROGRAMS)
	@test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
	@set +e; $(am__set_TESTS_bases); \
	bases=`for i in $$bases; do echo $$i; done \
	         | $(am__list_recheck_tests)` || exit 1; \
	log_list=`for i in $$bases; do echo $$i.log; done`; \
	log_list=`echo $$log_list`; \
	$(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \
	        am__force_recheck=am--force-recheck \
	        TEST_LOGS="$$log_list"; \
	exit $$?
interop-nbd-server.log: interop-nbd-server$(EXEEXT)
	@p='interop-nbd-server$(EXEEXT)'; \
	b='interop-nbd-server'; \
	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
	--log-file $$b.log --trs-file $$b.trs \
	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
	"$$tst" $(AM_TESTS_FD_REDIRECT)
interop-nbd-server-tls.log: interop-nbd-server-tls$(EXEEXT)
	@p='interop-nbd-server-tls$(EXEEXT)'; \
	b='interop-nbd-server-tls'; \
	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
	--log-file $$b.log --trs-file $$b.trs \
	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
	"$$tst" $(AM_TESTS_FD_REDIRECT)
list-exports-nbd-server.log: list-exports-nbd-server$(EXEEXT)
	@p='list-exports-nbd-server$(EXEEXT)'; \
	b='list-exports-nbd-server'; \
	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
	--log-file $$b.log --trs-file $$b.trs \
	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
	"$$tst" $(AM_TESTS_FD_REDIRECT)
interop-qemu-nbd.log: interop-qemu-nbd$(EXEEXT)
	@p='interop-qemu-nbd$(EXEEXT)'; \
	b='interop-qemu-nbd'; \
	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
	--log-file $$b.log --trs-file $$b.trs \
	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
	"$$tst" $(AM_TESTS_FD_REDIRECT)
interop-qemu-nbd-tls-certs.log: interop-qemu-nbd-tls-certs$(EXEEXT)
	@p='interop-qemu-nbd-tls-certs$(EXEEXT)'; \
	b='interop-qemu-nbd-tls-certs'; \
	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
	--log-file $$b.log --trs-file $$b.trs \
	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
	"$$tst" $(AM_TESTS_FD_REDIRECT)
interop-qemu-nbd-tls-psk.log: interop-qemu-nbd-tls-psk$(EXEEXT)
	@p='interop-qemu-nbd-tls-psk$(EXEEXT)'; \
	b='interop-qemu-nbd-tls-psk'; \
	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
	--log-file $$b.log --trs-file $$b.trs \
	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
	"$$tst" $(AM_TESTS_FD_REDIRECT)
list-exports-qemu-nbd.log: list-exports-qemu-nbd$(EXEEXT)
	@p='list-exports-qemu-nbd$(EXEEXT)'; \
	b='list-exports-qemu-nbd'; \
	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
	--log-file $$b.log --trs-file $$b.trs \
	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
	"$$tst" $(AM_TESTS_FD_REDIRECT)
socket-activation-qemu-nbd.log: socket-activation-qemu-nbd$(EXEEXT)
	@p='socket-activation-qemu-nbd$(EXEEXT)'; \
	b='socket-activation-qemu-nbd'; \
	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
	--log-file $$b.log --trs-file $$b.trs \
	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
	"$$tst" $(AM_TESTS_FD_REDIRECT)
dirty-bitmap.sh.log: dirty-bitmap.sh
	@p='dirty-bitmap.sh'; \
	b='dirty-bitmap.sh'; \
	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
	--log-file $$b.log --trs-file $$b.trs \
	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
	"$$tst" $(AM_TESTS_FD_REDIRECT)
block-status-64.sh.log: block-status-64.sh
	@p='block-status-64.sh'; \
	b='block-status-64.sh'; \
	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
	--log-file $$b.log --trs-file $$b.trs \
	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
	"$$tst" $(AM_TESTS_FD_REDIRECT)
structured-read.sh.log: structured-read.sh
	@p='structured-read.sh'; \
	b='structured-read.sh'; \
	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
	--log-file $$b.log --trs-file $$b.trs \
	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
	"$$tst" $(AM_TESTS_FD_REDIRECT)
interop-qemu-block-size.sh.log: interop-qemu-block-size.sh
	@p='interop-qemu-block-size.sh'; \
	b='interop-qemu-block-size.sh'; \
	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
	--log-file $$b.log --trs-file $$b.trs \
	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
	"$$tst" $(AM_TESTS_FD_REDIRECT)
opt-extended-headers.sh.log: opt-extended-headers.sh
	@p='opt-extended-headers.sh'; \
	b='opt-extended-headers.sh'; \
	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
	--log-file $$b.log --trs-file $$b.trs \
	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
	"$$tst" $(AM_TESTS_FD_REDIRECT)
block-status-payload.sh.log: block-status-payload.sh
	@p='block-status-payload.sh'; \
	b='block-status-payload.sh'; \
	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
	--log-file $$b.log --trs-file $$b.trs \
	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
	"$$tst" $(AM_TESTS_FD_REDIRECT)
strict-mode-auto-flag.sh.log: strict-mode-auto-flag.sh
	@p='strict-mode-auto-flag.sh'; \
	b='strict-mode-auto-flag.sh'; \
	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
	--log-file $$b.log --trs-file $$b.trs \
	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
	"$$tst" $(AM_TESTS_FD_REDIRECT)
interop-qemu-storage-daemon.sh.log: interop-qemu-storage-daemon.sh
	@p='interop-qemu-storage-daemon.sh'; \
	b='interop-qemu-storage-daemon.sh'; \
	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
	--log-file $$b.log --trs-file $$b.trs \
	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
	"$$tst" $(AM_TESTS_FD_REDIRECT)
interop-nbdkit.log: interop-nbdkit$(EXEEXT)
	@p='interop-nbdkit$(EXEEXT)'; \
	b='interop-nbdkit'; \
	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
	--log-file $$b.log --trs-file $$b.trs \
	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
	"$$tst" $(AM_TESTS_FD_REDIRECT)
interop-nbdkit-tls-certs.log: interop-nbdkit-tls-certs$(EXEEXT)
	@p='interop-nbdkit-tls-certs$(EXEEXT)'; \
	b='interop-nbdkit-tls-certs'; \
	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
	--log-file $$b.log --trs-file $$b.trs \
	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
	"$$tst" $(AM_TESTS_FD_REDIRECT)
interop-nbdkit-tls-certs-allow-enabled.log: interop-nbdkit-tls-certs-allow-enabled$(EXEEXT)
	@p='interop-nbdkit-tls-certs-allow-enabled$(EXEEXT)'; \
	b='interop-nbdkit-tls-certs-allow-enabled'; \
	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
	--log-file $$b.log --trs-file $$b.trs \
	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
	"$$tst" $(AM_TESTS_FD_REDIRECT)
interop-nbdkit-tls-certs-allow-fallback.log: interop-nbdkit-tls-certs-allow-fallback$(EXEEXT)
	@p='interop-nbdkit-tls-certs-allow-fallback$(EXEEXT)'; \
	b='interop-nbdkit-tls-certs-allow-fallback'; \
	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
	--log-file $$b.log --trs-file $$b.trs \
	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
	"$$tst" $(AM_TESTS_FD_REDIRECT)
interop-nbdkit-tls-certs-bad-CA.log: interop-nbdkit-tls-certs-bad-CA$(EXEEXT)
	@p='interop-nbdkit-tls-certs-bad-CA$(EXEEXT)'; \
	b='interop-nbdkit-tls-certs-bad-CA'; \
	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
	--log-file $$b.log --trs-file $$b.trs \
	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
	"$$tst" $(AM_TESTS_FD_REDIRECT)
interop-nbdkit-tls-certs-bad-hostname.log: interop-nbdkit-tls-certs-bad-hostname$(EXEEXT)
	@p='interop-nbdkit-tls-certs-bad-hostname$(EXEEXT)'; \
	b='interop-nbdkit-tls-certs-bad-hostname'; \
	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
	--log-file $$b.log --trs-file $$b.trs \
	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
	"$$tst" $(AM_TESTS_FD_REDIRECT)
interop-nbdkit-tls-psk.log: interop-nbdkit-tls-psk$(EXEEXT)
	@p='interop-nbdkit-tls-psk$(EXEEXT)'; \
	b='interop-nbdkit-tls-psk'; \
	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
	--log-file $$b.log --trs-file $$b.trs \
	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
	"$$tst" $(AM_TESTS_FD_REDIRECT)
interop-nbdkit-tls-psk-allow-enabled.log: interop-nbdkit-tls-psk-allow-enabled$(EXEEXT)
	@p='interop-nbdkit-tls-psk-allow-enabled$(EXEEXT)'; \
	b='interop-nbdkit-tls-psk-allow-enabled'; \
	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
	--log-file $$b.log --trs-file $$b.trs \
	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
	"$$tst" $(AM_TESTS_FD_REDIRECT)
interop-nbdkit-tls-psk-allow-fallback.log: interop-nbdkit-tls-psk-allow-fallback$(EXEEXT)
	@p='interop-nbdkit-tls-psk-allow-fallback$(EXEEXT)'; \
	b='interop-nbdkit-tls-psk-allow-fallback'; \
	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
	--log-file $$b.log --trs-file $$b.trs \
	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
	"$$tst" $(AM_TESTS_FD_REDIRECT)
socket-activation-nbdkit.log: socket-activation-nbdkit$(EXEEXT)
	@p='socket-activation-nbdkit$(EXEEXT)'; \
	b='socket-activation-nbdkit'; \
	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
	--log-file $$b.log --trs-file $$b.trs \
	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
	"$$tst" $(AM_TESTS_FD_REDIRECT)
list-exports-nbdkit.log: list-exports-nbdkit$(EXEEXT)
	@p='list-exports-nbdkit$(EXEEXT)'; \
	b='list-exports-nbdkit'; \
	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
	--log-file $$b.log --trs-file $$b.trs \
	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
	"$$tst" $(AM_TESTS_FD_REDIRECT)
.test.log:
	@p='$<'; \
	$(am__set_b); \
	$(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \
	--log-file $$b.log --trs-file $$b.trs \
	$(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
	"$$tst" $(AM_TESTS_FD_REDIRECT)
#.test$(EXEEXT).log:
#	@p='$<'; \
#	$(am__set_b); \
#	$(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \
#	--log-file $$b.log --trs-file $$b.trs \
#	$(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
#	"$$tst" $(AM_TESTS_FD_REDIRECT)
distdir: $(BUILT_SOURCES)
	$(MAKE) $(AM_MAKEFLAGS) distdir-am

distdir-am: $(DISTFILES)
	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
	list='$(DISTFILES)'; \
	  dist_files=`for file in $$list; do echo $$file; done | \
	  sed -e "s|^$$srcdirstrip/||;t" \
	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
	case $$dist_files in \
	  */*) $(MKDIR_P) `echo "$$dist_files" | \
			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
			   sort -u` ;; \
	esac; \
	for file in $$dist_files; do \
	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
	  if test -d $$d/$$file; then \
	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
	    if test -d "$(distdir)/$$file"; then \
	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
	    fi; \
	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
	    fi; \
	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
	  else \
	    test -f "$(distdir)/$$file" \
	    || cp -p $$d/$$file "$(distdir)/$$file" \
	    || exit 1; \
	  fi; \
	done
check-am: all-am
	$(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS)
	$(MAKE) $(AM_MAKEFLAGS) check-TESTS
check: $(BUILT_SOURCES)
	$(MAKE) $(AM_MAKEFLAGS) check-am
all-am: Makefile
installdirs:
install: $(BUILT_SOURCES)
	$(MAKE) $(AM_MAKEFLAGS) install-am
install-exec: $(BUILT_SOURCES)
	$(MAKE) $(AM_MAKEFLAGS) install-exec-am
install-data: install-data-am
uninstall: uninstall-am

install-am: all-am
	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am

installcheck: installcheck-am
install-strip:
	if test -z '$(STRIP)'; then \
	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
	      install; \
	else \
	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
	fi
mostlyclean-generic:
	-test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS)
	-test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs)
	-test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)

clean-generic:
	-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)

distclean-generic:
	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)

maintainer-clean-generic:
	@echo "This command is intended for maintainers to use"
	@echo "it deletes files that may require special tools to rebuild."
	-test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
clean: clean-am

clean-am: clean-checkPROGRAMS clean-generic clean-libtool \
	mostlyclean-am

distclean: distclean-am
		-rm -f ./$(DEPDIR)/block-status-64.Po
	-rm -f ./$(DEPDIR)/block-status-payload.Po
	-rm -f ./$(DEPDIR)/dirty-bitmap.Po
	-rm -f ./$(DEPDIR)/interop_nbd_server-interop.Po
	-rm -f ./$(DEPDIR)/interop_nbd_server-requires.Po
	-rm -f ./$(DEPDIR)/interop_nbd_server_tls-interop.Po
	-rm -f ./$(DEPDIR)/interop_nbd_server_tls-requires.Po
	-rm -f ./$(DEPDIR)/interop_nbdkit-interop.Po
	-rm -f ./$(DEPDIR)/interop_nbdkit-requires.Po
	-rm -f ./$(DEPDIR)/interop_nbdkit_tls_certs-interop.Po
	-rm -f ./$(DEPDIR)/interop_nbdkit_tls_certs-requires.Po
	-rm -f ./$(DEPDIR)/interop_nbdkit_tls_certs_allow_enabled-interop.Po
	-rm -f ./$(DEPDIR)/interop_nbdkit_tls_certs_allow_enabled-requires.Po
	-rm -f ./$(DEPDIR)/interop_nbdkit_tls_certs_allow_fallback-interop.Po
	-rm -f ./$(DEPDIR)/interop_nbdkit_tls_certs_allow_fallback-requires.Po
	-rm -f ./$(DEPDIR)/interop_nbdkit_tls_certs_bad_CA-interop.Po
	-rm -f ./$(DEPDIR)/interop_nbdkit_tls_certs_bad_CA-requires.Po
	-rm -f ./$(DEPDIR)/interop_nbdkit_tls_certs_bad_hostname-interop.Po
	-rm -f ./$(DEPDIR)/interop_nbdkit_tls_certs_bad_hostname-requires.Po
	-rm -f ./$(DEPDIR)/interop_nbdkit_tls_psk-interop.Po
	-rm -f ./$(DEPDIR)/interop_nbdkit_tls_psk-requires.Po
	-rm -f ./$(DEPDIR)/interop_nbdkit_tls_psk_allow_enabled-interop.Po
	-rm -f ./$(DEPDIR)/interop_nbdkit_tls_psk_allow_enabled-requires.Po
	-rm -f ./$(DEPDIR)/interop_nbdkit_tls_psk_allow_fallback-interop.Po
	-rm -f ./$(DEPDIR)/interop_nbdkit_tls_psk_allow_fallback-requires.Po
	-rm -f ./$(DEPDIR)/interop_qemu_nbd-interop.Po
	-rm -f ./$(DEPDIR)/interop_qemu_nbd-requires.Po
	-rm -f ./$(DEPDIR)/interop_qemu_nbd_tls_certs-interop.Po
	-rm -f ./$(DEPDIR)/interop_qemu_nbd_tls_certs-requires.Po
	-rm -f ./$(DEPDIR)/interop_qemu_nbd_tls_psk-interop.Po
	-rm -f ./$(DEPDIR)/interop_qemu_nbd_tls_psk-requires.Po
	-rm -f ./$(DEPDIR)/list_exports_nbd_server-list-exports.Po
	-rm -f ./$(DEPDIR)/list_exports_nbd_server-requires.Po
	-rm -f ./$(DEPDIR)/list_exports_nbdkit-list-exports.Po
	-rm -f ./$(DEPDIR)/list_exports_nbdkit-requires.Po
	-rm -f ./$(DEPDIR)/list_exports_qemu_nbd-list-exports.Po
	-rm -f ./$(DEPDIR)/list_exports_qemu_nbd-requires.Po
	-rm -f ./$(DEPDIR)/opt-extended-headers.Po
	-rm -f ./$(DEPDIR)/socket_activation_nbdkit-socket-activation.Po
	-rm -f ./$(DEPDIR)/socket_activation_qemu_nbd-socket-activation.Po
	-rm -f ./$(DEPDIR)/structured-read.Po
	-rm -f Makefile
distclean-am: clean-am distclean-compile distclean-generic \
	distclean-tags

dvi: dvi-am

dvi-am:

html: html-am

html-am:

info: info-am

info-am:

install-data-am:

install-dvi: install-dvi-am

install-dvi-am:

install-exec-am:

install-html: install-html-am

install-html-am:

install-info: install-info-am

install-info-am:

install-man:

install-pdf: install-pdf-am

install-pdf-am:

install-ps: install-ps-am

install-ps-am:

installcheck-am:

maintainer-clean: maintainer-clean-am
		-rm -f ./$(DEPDIR)/block-status-64.Po
	-rm -f ./$(DEPDIR)/block-status-payload.Po
	-rm -f ./$(DEPDIR)/dirty-bitmap.Po
	-rm -f ./$(DEPDIR)/interop_nbd_server-interop.Po
	-rm -f ./$(DEPDIR)/interop_nbd_server-requires.Po
	-rm -f ./$(DEPDIR)/interop_nbd_server_tls-interop.Po
	-rm -f ./$(DEPDIR)/interop_nbd_server_tls-requires.Po
	-rm -f ./$(DEPDIR)/interop_nbdkit-interop.Po
	-rm -f ./$(DEPDIR)/interop_nbdkit-requires.Po
	-rm -f ./$(DEPDIR)/interop_nbdkit_tls_certs-interop.Po
	-rm -f ./$(DEPDIR)/interop_nbdkit_tls_certs-requires.Po
	-rm -f ./$(DEPDIR)/interop_nbdkit_tls_certs_allow_enabled-interop.Po
	-rm -f ./$(DEPDIR)/interop_nbdkit_tls_certs_allow_enabled-requires.Po
	-rm -f ./$(DEPDIR)/interop_nbdkit_tls_certs_allow_fallback-interop.Po
	-rm -f ./$(DEPDIR)/interop_nbdkit_tls_certs_allow_fallback-requires.Po
	-rm -f ./$(DEPDIR)/interop_nbdkit_tls_certs_bad_CA-interop.Po
	-rm -f ./$(DEPDIR)/interop_nbdkit_tls_certs_bad_CA-requires.Po
	-rm -f ./$(DEPDIR)/interop_nbdkit_tls_certs_bad_hostname-interop.Po
	-rm -f ./$(DEPDIR)/interop_nbdkit_tls_certs_bad_hostname-requires.Po
	-rm -f ./$(DEPDIR)/interop_nbdkit_tls_psk-interop.Po
	-rm -f ./$(DEPDIR)/interop_nbdkit_tls_psk-requires.Po
	-rm -f ./$(DEPDIR)/interop_nbdkit_tls_psk_allow_enabled-interop.Po
	-rm -f ./$(DEPDIR)/interop_nbdkit_tls_psk_allow_enabled-requires.Po
	-rm -f ./$(DEPDIR)/interop_nbdkit_tls_psk_allow_fallback-interop.Po
	-rm -f ./$(DEPDIR)/interop_nbdkit_tls_psk_allow_fallback-requires.Po
	-rm -f ./$(DEPDIR)/interop_qemu_nbd-interop.Po
	-rm -f ./$(DEPDIR)/interop_qemu_nbd-requires.Po
	-rm -f ./$(DEPDIR)/interop_qemu_nbd_tls_certs-interop.Po
	-rm -f ./$(DEPDIR)/interop_qemu_nbd_tls_certs-requires.Po
	-rm -f ./$(DEPDIR)/interop_qemu_nbd_tls_psk-interop.Po
	-rm -f ./$(DEPDIR)/interop_qemu_nbd_tls_psk-requires.Po
	-rm -f ./$(DEPDIR)/list_exports_nbd_server-list-exports.Po
	-rm -f ./$(DEPDIR)/list_exports_nbd_server-requires.Po
	-rm -f ./$(DEPDIR)/list_exports_nbdkit-list-exports.Po
	-rm -f ./$(DEPDIR)/list_exports_nbdkit-requires.Po
	-rm -f ./$(DEPDIR)/list_exports_qemu_nbd-list-exports.Po
	-rm -f ./$(DEPDIR)/list_exports_qemu_nbd-requires.Po
	-rm -f ./$(DEPDIR)/opt-extended-headers.Po
	-rm -f ./$(DEPDIR)/socket_activation_nbdkit-socket-activation.Po
	-rm -f ./$(DEPDIR)/socket_activation_qemu_nbd-socket-activation.Po
	-rm -f ./$(DEPDIR)/structured-read.Po
	-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic

mostlyclean: mostlyclean-am

mostlyclean-am: mostlyclean-compile mostlyclean-generic \
	mostlyclean-libtool

pdf: pdf-am

pdf-am:

ps: ps-am

ps-am:

uninstall-am:

.MAKE: all check check-am install install-am install-exec \
	install-strip

.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-TESTS \
	check-am clean clean-checkPROGRAMS clean-generic clean-libtool \
	cscopelist-am ctags ctags-am distclean distclean-compile \
	distclean-generic distclean-libtool distclean-tags distdir dvi \
	dvi-am html html-am info info-am install install-am \
	install-data install-data-am install-dvi install-dvi-am \
	install-exec install-exec-am install-html install-html-am \
	install-info install-info-am install-man install-pdf \
	install-pdf-am install-ps install-ps-am install-strip \
	installcheck installcheck-am installdirs maintainer-clean \
	maintainer-clean-generic mostlyclean mostlyclean-compile \
	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
	recheck tags tags-am uninstall uninstall-am

.PRECIOUS: Makefile


$(generator_built): $(top_builddir)/generator/stamp-generator

$(top_builddir)/generator/stamp-generator: \
	  $(wildcard $(top_srcdir)/generator/*.ml) \
	  $(wildcard $(top_srcdir)/generator/*.mli) \
	  $(wildcard $(top_srcdir)/generator/states*.c)
	$(MAKE) -C $(top_builddir)/generator stamp-generator

%.cmi: %.mli
	$(OCAMLFIND) ocamlc $(OCAMLFLAGS) $(OCAMLPACKAGES) -c $< -o $@
%.cmo: %.ml
	$(OCAMLFIND) ocamlc $(OCAMLFLAGS) $(OCAMLPACKAGES) -c $< -o $@
#%.cmx: %.ml
#	$(OCAMLFIND) ocamlopt $(OCAMLFLAGS) $(OCAMLPACKAGES) -c $< -o $@

$(top_builddir)/podwrapper.pl: $(top_srcdir)/podwrapper.pl.in
	$(MAKE) -C $(top_builddir) podwrapper.pl
requires.c: $(top_srcdir)/tests/requires.c
	rm -f $@
	$(LN_S) $(top_srcdir)/tests/$@ $@

check-valgrind:
	LIBNBD_VALGRIND=1 $(MAKE) check

# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     Caml1999O030 ͊T   x                                $         )   *          V          C   
         T      c      V         C   
         T      d   
      V          V   	   5       8          !   T      c   T          C   
         8          !   6       8          "            V         	      	      	               3   +      l   ,      8          #   T                                          3                 V          V      5       8          %      c   (   
       C   
   8          !   6       8          &   
      C   V      5       8          !   d         I       W         +       C   
   C      V          6       8          "      W               5       T   	   5       T      5       T            6       8          '          C      V      5       8          !       6       8          &         C   V      5       8          !   d         I       W         (  O  (  O  (   Q   d   v  k   v  ~                              C      V      5       8          !       6       8          &          C   
   C      V          6       8          "      W               5       T   	   5       T      5       T            6       8          '          C      V      5       8          !       6       8          &      5       6       @       [       C      V      5       8          !       6       8          &          C      V      5       8          !       6       8          &          C      V      5       8          !       6       8          &          D      C      V      5       8          !       6       8          "      V      5       8          !      6       8          &          C      V      5       8          !       6       8          &          C      V      5       8          !       6       8          &          C      V      5       8          !       6       8          &          C      V      5       8          !       6       8          &          C      V      5       8          !       6       8          &          D      C            V      5       8          !       6       8          "      V      5       8          !      6       8          &          D      C            V      5       8          !       6       8          "      V      5       8          !      6       8          &          C   
      V      5       8          !       6       8          &          C   
      V      5       8          !       6       8          &      )   *          V          C   
         T      c      V         C   
         T      d      V         C   
         T      c   h   ?       
   V      d      I      V      5       8          !   5       8          !         
      +      8          "            
      +      8          &                        '      )   *          V          C   
         T      c      V         C   
         T      d      V         C   
         T      c      V      5       8          !      V                  3   +      l   ,      8          #   T                  3   #      V      5       8          %   
   (   	   5       8          !       W         s                 *      C   
   W                                                            A         5       6       @       [      D      C      V      5       8          !       6       8          "      V      5       8          !      6       8          &         D      C      V      5       8          !       6       8          "      V      5       8          !      6       8          &          D      C      V      5       8          !      V      5       8          !       6       8          "      V      5       8          !      6       8          &          C      V      5       8          !       6       8          &          C      V      5       8          !       6       8          &          C   
   W                                                                     5       6       @       [       C      V      5       8          !       6       8          &          C      V      5       8          !      V      5       8          !       6       8          &          C      V      5       8          !       6       8          &          C      V      5       8          !       6       8          &      )   *          V          C   
         T      d   
   V      5       8          !   5       8          !      
      +      8          &          W                C   
   C   
   6       8          &      c   (          W                                                                     c   (          C   
   C   
   6       8          &          W            c   (          E      D      C               '          C   
      6       8          '          W                        S                                             c   (          C   
   C      V         C   
         T      5       6       @       [      6       8          "      6       8          "       6       8          "   5       8          !   5       8          !   d      I   (          D   
   D      C   
   C      V         C   
         T      5       6       @       [      6       8          "      
   +      {8          "   5       8          !   5       8          !   5       8          !         6       8          #       6       8          "   5       8          !   5       8          !   d      I   (          D      C   h               '          C   
      V         C   
         T      5       6       @       [      6       8          "      6       8          "       6       8          "   5       8          !   5       8          !   d      I   (          D      C         8       #   "   V            C   t      I   (      )   *         E      D   
   C      V         C   
         T      5       6       @       [      V   %      C   
   V      c   ?             
   +      8          "       C   6       8          "         T      5             T      5          8          "   6       8          "   
   V         C   
   6       8          "         T      5       	                     6       8                 5       8          !         6       8          #      6       8          "   5       8          !   5       8          !   d      I   (   	       W                                                                     c   (          D      C         6       8          !         6       8          '         h      "   6       8          &          W         
             $   5       (      5       (      5       (      5          8          "   6       8          &      5       (      5       (          D   
   G   	      G         G      
   E      D      C      C      h   z   V      5       8          !       6       8          "   5       8          !   5       8          !   5       8          !   5             +      8          "   
      8          "   6       8          "   5       8          !   5       8          !   5       8          !   5       8          !            +      _h   8          "   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !         c   ?             	   !            !      6       8          "      6       8          "                     h   6       h   6       h   6          
          5       8          !   5       8          !      h   z   V      5       8          !      6       8          "   5       8          !   5       8          !      	   V         6       8          "   5       8          !   T      5       8          !         V      5       8          !                  	      	      	   3          5       8          !      	   +       s8          "      h   z   V   7       V          C   
         T      5       6       @       [      6       8          "   5       8          !       6       8          "   5       8          !   5       8          !   d      I             
   +            
      +      8          "         +      b8          "      6       8          "            	      	   6       h   6       6       h   6          
          5       8          !   5       8          !      C   V      5       8          !      
            4      #   5       8          !      	   +       8          "      	   +       8          "      	   V      5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          %          W                                                                     c   (      5       6       @       [       C   
   
   6       8          &      )   *         W               C   
   C   
   6       8          "         T         C   
   6       8          "         T                  n   {   V      5       8          %      (      )   *         W      #   f   }   f   }   0   8   E      L               Y                        C   
   
   6       8          "         T         C   
   6       8          "         T   w   5       8          !   T   o      C   
   6       8          "         T   b   5       6       @       [      C   
   6       8          "         T   N      D   
   6       8          "         T   A      D      C         	                  6       8                       T   *      D   
   
   6       8          "         T         C   
   
      6       8          #         T   
      C   
   
   6       8          "                  {   V      5       8          %      (               +      @8          "                  +      8          &          W                C   
   C   
   6       8          &          C   
   6       8          &          W                        +   5      <      F      P   Z      g   q   {             C   
   6       8          &          C   
   C   
   6       8          &          C   
   6       8          &      5       6       @       [       C   
   6       8          &          C   
   6       8          &          C   
   6       8          &          D      C         6       8          '          C   
   6       8          &          C   
   6       8          &          C   
   6       8          &          C   
   6       8          &          C   
   6       8          &          D      C               6       8          '          D      C               6       8          '          C   
   
   6       8          &          C   
   
   6       8          &      5       8          !      	   +       &8          "      	   +       8          &          W         0      0                           F         F                  c   (      5       6       @       [       C   
   6       8          "       6       8          &          D      C         
   6       8          "         6       8          '          C   
   
   6       8          "       6       8          &      )   *      5       8          !      	   +       8          "      V      5       8          !   g      8          !   T          6       8          "   g      8          !   
   6       8          "      
   +      Q
   h   8          "   5       8          !      8           !      8           !   
      n   
   h   {   V         6       8          "       
      	      	   +      !
   l   ,   h   8          #   5       8          !      	   +       8          "   5       8          %         V   	   5       8          !   T         6       8          "      W     1      1   1   1   8   8         ?   #   *   1   ?   5       8          %      5       8          %      5       8          %      5       8          %      5       8          %      5       8          %      5       8          %      5       8          %      )   *      5       8          !      V   H         !   
   V          C   
   6       8          "         T      5       6       @       [         5       8          !   5       8          !         V                  5       8          !   5       8          !   T      c   5       8          !   T      5       8          !            +      G
   l   ,   h   8          #   5       8          !      V            V   
            	   5       8          !   T      c   5       8          !   5       8          %                        ,         jc   h   h   8          #   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   7           
   8          &          W         
               5       (      5       (      5       (      5       (      5       (      5       (      )   *          V          C   
         T      c                c   T      5       6       @       [       V      5       T      5       
   	   +       8          "      8          &          D   
   E      D      C      C   
   
   
   
   6       8          "   6       6          $         c   h   h   8          #   5       8          !   5       8          !   5       8          !   7              +      8          "   5       8          !   5       8          %          D      C            &          D   
   E      D      C      C   
   
   
   
   6          $             D      C   
   6       8          "         6       8          '          D      C   
      6       8          #         6       8          #         C   t      I   (          E      C   h   ?             
   +      8          "      6       8          "      C      6       8          #   5       8          %          D      C   
      6       8          #         6       8          '          D      C         +      8          "   5       8          %      c   h   h   8          #   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   7          	   +       8          "   7          	   +       8          "   7          	   +       f8          "   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   c      !   7              +      8          "   7                +      8          "   5       8          !   5       8          !   5       8          !   5       8          !   5       8          %          D      C               '          C   
               '      )   *          8          !      6       8          "         6       8          #   5       8          !      6       8          "         
      +      8          "            +      8          "   5       8          %          D      C         6       8          '      )   *         h   z   V      5       8          !         6       8          #      	   +       8          &      (      )   *         8          !   
   8          !      
         6       8          $      
   )   *         8          !   	                                 h      	                 6       8          "   5       8          %          C   
      8          !   6       8          '      )   *            ^       (          W         	       C   
   ?       (      c   (          D   
   D   
   (          D      C   6       8          !   5       8          !            h   h   h   h   6                 5       8          !   5       8          !   5       8          !       6       8          "       8          !   6       8          "   5       8          %      5       8          !   5       8          !   5       8          !   7             +      8          "   5       8          !   5       8          !   5       8          !   7           	   +       }8          "   
   8       
   !   
   	   +       `8          "   
   	   +       O8       :   "         
   	   +       48          "   5       8          %          D      C      V          ?       (      c   (      )   *                  @       (      )   *      5       8          !                                       h      	                      V   
            	   5       8          !   T      c         8          "   8       
   !         8          "   8       
   !   8       $   "   6       8       $   "   
   	   +       8          "   
   	   +       8          "   
   8           8          "   
   6       8          "   6       8          &      )   *            !   6       8          "   c   8          !      6       8          "            
   ?       ?       h   6                      $         5       (          W         (   (   (   (                        ,          ,   $               5       (      5       6       @       [   5       (      5       (      5       (      5       (          W         	       C   
   C   
   (          C   
   (          W            *   7   D   Q   j   r   y                                           C   h      @       (          D      C   h      @          @       (          D      C   h      @          @       (          D      C   h      @          @       (          D      C   h      @          @       (          C   
   C   h      6       8          "   @          6       8          "   @       (          C   h      @       (      5       6       @       [       C   h      @       (          C   h      @       (          C   h      @       (          C   h      @       (          C   h      @       (          C   h      @       (          D      C   h      @          @       (          C   h      @       (          C   h      @       (          C   h      @       (          C   h      @       (          C   h      @       (          C   h      @       (          W     *      *   *   *   .   .               "   *   &   5       (      5       (      5       (      5       (      5       (      5       (      5       (      5       (      5       (             V          W                                          5       (      5       (      c   (          C   
   6       8          &          D      C   
   D      C         6       8          #         6       8          #   5       8          !   5             @       ^       V      5       8          !   5       8          !   5       8          !   5       8          !      	   +       8          "      C   
   V      c   T   
   5       8          !   5       8          !         5       8          !      C   
   V          C   
   D      C         6       8          #         T      c         5       8          !   5       8          !         @       ?          I   (          D   
   G            @       (          D   
   G      
      ^       (          D   
   G      
   +      (      e   h   h   8          #   +       8              8       7   "   	   +             8          "   
   8          !   h   ?             +      "8          &   	   +       	   +       	   +       	   +       	   +       	   +       |	   +       t	   ,          x      +      ?
         +      	   ,          E   +      >
   +      	   +       	   +       \
      +      

         +            +      G	   +       
                     +      4	                        
                                    	                  !   >   
             9        uN  7      , W!C&_none_@@ AA"??A@@@@@@@@@@@  , Wh	A"??A@*floatarrayQ  8 @@@A@@@@@E@@@5extension_constructorP  8 @@@A@@@@@I@@@#intA  8 @@@A@@@@@M@A@$charB  8 @@@A@@@@@Q@A@&stringO  8 @@@A@@@@@U@@@%floatD  8 @@@A@@@@@Y@@@$boolE  8 @@%false^@@c@$true_@@i@@@A@@@@@j@A@$unitF  8 @@"()`@@t@@@A@@@@@u@A@
#exnG  8 @@AA@@@@@y@@@%arrayH  8 @ @O@A@A@ @@@@@@@@$listI  8 	 @P@A"[]a@@@"::b@@ @Q@@@
@@A@Y@@@@@@@@&optionJ  8 % @S@A$Nonec@@@$Somed@@@@@A@Y@@@@@@@@&lazy_tN  8 ; @U@A@A@Y@@@@@@@@)nativeintK  8 @@@A@@@@@@@@%int32L  8 @@@A@@@@@@@@%int64M  8 @@@A@@@@@@@@:Undefined_recursive_module]    W@@@ @J@@ @@@ @V@@Aܠ=ocaml.warn_on_literal_patterna@.Assert_failure\    @@ @X@@A렰o@
0Division_by_zeroY    &@@@A󠰠w@+End_of_fileX    .@@@A@)Sys_errorW    6@2@@A(@.Sys_blocked_io[    ?@@@A0@)Not_foundV    G@@@A8@'FailureU    O@K@@AA  @0Invalid_argumentT    X@T@@A&J))@.Stack_overflowZ    a@@@A.R11@-Out_of_memoryS    i@@@A6Z99@-Match_failureR    q@plm@ @c@@ADhGG@
%bytesC  8 @@@A@@@@@K@@@&Stdlib&Printf#API%Utils-closure_style oW  8 @@&Direct p@@$C.mlYY@@fA)AddressOf q@@
YY@@oB'Pointer r@@YY@@xC@@A@@@@@Y@@A@{@,parens_style sX  8 @@(NoParens t@@#Z$Z@@E.ParensSameLine u@@,Z-Z@@F7ParensNewLineWithIndent vO@@ @ @@:Z;Z@@G@@A@@@@@>Z@@@@D8generate_lib_libnbd_syms w@B@@ @ Y@ $unitF@@ @ NY@ @ @ Y@ @V\#W\;@@H.errcode_of_ret @#API#ret@@ @ ȌY@ ȉ1@@ @ ȢY@ ȡ@@ @ ȠY@ Ȋ@ @ ȋY@ Ȉ@w Dx D	@@Y+type_of_ret @!@@ @ ȷY@ ȴ@@ @ Y@ ȵ@ @ ȶY@ ȳ@ K		 K		@@Z+name_of_arg @6#arg@@ @ Y@ &stringO@@ @ ɊY@ Ɉ@@ @ ɇY@ @ @ Y@ @ W W@@[.name_of_optarg@W&optarg@@ @ bY@ _@@ @ zY@ `@ @ aY@ ^@ p

 p

@@*u0arg_attr_nonnull@9@@ @ ˭Y@ ˪7@@ @ Y@  @@ @ Y@ ˫@ @ ˬY@ ˩@ y y@@Fx3optarg_attr_nonnull@4@@ @ NY@ KS@@ @ aY@ _@@ @ ^Y@ L@ @ MY@ J@  @@a|.print_arg_list$wrapϠ@@ @ ͑Y@ ̏@@ @ ̐Y@ j&maxcol#intA@@ @ ͜Y@ ̯@@ @ ̰Y@ l&handle#"@@ @ Y@ ̵@@ @ ̶Y@ n%types21@@ @ ڂY@ ̻@@ @ ̼Y@ p&parensA:@@ @ Y@ @@ @ Y@ r-closure_styleQm@@ @ Y@ @@ @ Y@ t@$listI@@ @ ϫZ@ X@@ @ WY@ u@@@ @ ٟY@ L@@ @ KY@ v;@@ @ Y@ w@ @ x@ @ y@ @ z@ @ {@ @ |@ @ }@ @ ~@ @ Y@ g@  @@}/print_arg_list'&handleiY@ m@@ @ nY@ ́%typeseY@ ΍@@ @ ΎY@ ̃-closure_styleQY@ έ@@ @ ήY@ ̅@LY@ ̆@?Y@ ̇$unitF@@ @ ͖Y@ ̈@ @ ̉@ @ ̊@ @ ̋@ @ ̌@ @ ̍Y@ h@ #' #6@@%~*print_callR$wrapĠ@@ @ Y@ (@@ @ )Y@ %&maxcolՠ@@ @ Y@ 1@@ @ 2Y@ .-closure_style@@ @ Y@ :@@ @ ;Y@ 7@&stringO@@ @ Y@ @@v@@ @ @@ @ Y@ F@b@@ @ @@ @ Y@ L@@@ @ ۜY@ R@@ @  Y@ S@ @ TY@ M@ @ NY@ G@ @ HY@ A@ @ BY@ 8@ @ 9Y@ /@ @ 0Y@ &@ @ 'Y@ $@. ae/ ao@@ t,print_fndecl\$wrap21@@ @ ܠY@ 2@@ @ 3Y@ /-closure_styleC@@ @ ܜY@ ;@@ @ <Y@ 8@]@@ @ ܚY@ A@@@ @ )]@ !@@ @  Y@ G@@@ @ A]@ 9@@ @ 8Y@ M@"@@ @ ܕY@ S@@ @ Y@ T@ @ UY@ N@ @ OY@ H@ @ IY@ B@ @ CY@ 9@ @ :Y@ 0@ @ 1Y@ .@@@ }0print_cbarg_list$wrap@@ @ Y@ C@@ @ DY@ )&maxcol@@ @ Y@ c@@ @ dY@ +%types@@ @ Y@ i@@ @ jY@ -&parens@@ @ 
Y@ o@@ @ pY@ /'noconstΠ@@ @ Y@ @@ @ Y@ 1@|%cbarg@@ @ Y@ @@ @ Y@ 2@@ @ >Y@ 3@ @ 4@ @ 5@ @ 6@ @ 7@ @ 8@ @ 9Y@ &@ ## #$
@@\ 1print_cbarg_list'%typesKY@ L@@ @ MY@ ;@1Y@ <@,Y@ =Y@@ @ Y@ >@ @ ?@ @ @@ @ AY@ '@*%+%/*%+%@@@{ 5print_closure_structs@@@ @ \Y@ Y@@ @ Y@ Z@ @ [Y@ X@+Z*g*k,Z*g*@@ 7print_fndecl_and_define$wrap/.@@ @ Y@ @@ @ Y@ @I@@ @ Y@ @@@ @ @@ @ Y@ @@@ @ @@ @ Y@ @	@@ @ Y@ @@ @ tY@ @ @ Y@ @ @ Y@ @ @ Y@ @ @ Y@ @ @ Y@ @t|//u|//&@@ -print_ns_ctxt@@@ @ ;Y@ @@@ @ Y@ @@@ @ SY@ @@ @ Y@ @ @ Y@ @ @ Y@ @ @ Y@ @////@@  2print_ns_ctxt_bits@@@ @ Y@ p@@@ @ Y@ v@P@@ @ rY@ 1#intA@@ @ Y@ 2@ @ 3Y@ ,@@ @ +Y@ |@@ @ Y@ }@ @ ~Y@ w@ @ xY@ q@ @ rY@ o@0000@@; Ġ(print_ns@@@ @ =Y@ @@@ @ <Z@ +@@ @ :<@@ @ ;@ @ 9@@ @ 8Z@ ,@ @ -Z@ &@@ @ %Y@ @@ @ LY@ @ @ Y@ @ @ Y@ @1111@@u ʠ9generate_include_libnbd_h@@@ @ ~Y@ {@@ @ NY@ |@ @ }Y@ z@%33&333@@ Ѡ7generate_lib_unlocked_h'@@@ @ Y@ |@@ @ Y@ }@ @ ~Y@ {@:@'@+;@'@B@@ 4permitted_state_text/$fold>=@@ @ Y@ @@ @ Y@ @/permitted_state@@ @ 7Z@ 3@@ @ 2Y@ 
&stringO@@ @ &Y@ @ @ Y@ @ @ Y@ @kAAlAA@@ 2generate_lib_api_c7@.@@ @ fY@ c-@@ @ ;Y@ d@ @ eY@ b@'CC'CC@@ @F@@A1B@@yS@@ V@@ABCOA@@kT@@AD@@BE@@G@@\U@@ABCDH@@I@@AJ@@BL@@M@@N@@ABCuK@@{O@@R@@AB5P@@Q@@A6C@@BCDE@@V@  , Wd'CCwwAA4C.generate_lib_api_cA@@@  , W<AA"CUCZAA6C.permitted_state_textA@@@  , W, @'@CAjAAA9C.generate_lib_unlocked_hA@@@  , W&334@@%AA;C.generate_include_libnbd_hA@%$@@  , W ,1133AA*C.print_nsA@+*@@  , V20011AA4C.print_ns_ctxt_bitsA@10@@  , V8//00AA/C.print_ns_ctxtA@76@@  , V>|//'//AA9C.print_fndecl_and_defineA@=<@@  , VDZ*g*z/ /	AA7C.print_closure_structsA@CB@@  , VJ##AA.C.print_fndeclA@IH@@  , V|P apAA,C.print_callA@ON@@  , VPV  AA5C.optarg_attr_nonnullA@UT@@  , V@\ z Db@A2C.arg_attr_nonnullA@[Z@@  , V0b q

 s

@A0C.name_of_optargA@a`@@  , V h X n

@A-C.name_of_argA@gf@@  , Vn
 L		 U
@A-C.type_of_retA@ml@@  , V t E		 I		@A0C.errcode_of_retA@sr@@  , Uz\< BAA:C.generate_lib_libnbd_symsA@yx@@  , Ug  B@A	 C.generate_lib_libnbd_syms.(fun)A@~@@  , U%g@@Ao쐰/\@#cmp y@@ @ $call@@ @ [@ @ @ [@ 
@ @ "@@ @ )[@ #@ @ $[@ #intA@@ @ 4[@  @ @ ![@ @ @ [@ @_```@@I%calls @@ @ [@ 6@@ @ @ @ [@ @@ @ [@ D@|a}a@@L'extract @O @ N@@ @ [@ @ @ [@ #intA@@ @ @@ @ 	@ @ [@ "m@@ @ @ @ 
[@ @ @ [@ @ @ [@ @b#)b#0@@M%calls Q*@@ @ '@@ @  @ @ a@@ @ ([@ "@@ @ #@ @ !@ @ [@ @@ @ [@ @ciocit@@AP%calls $listIV@@ @ :S@@ @ ;@ @ 9[@ 1@@ @ =@@ @ >@ @ <[@ 3@@ @ 2@ @ 0@@ @ /[@ ,@
dd@@rQ$prev &Stdlib#ref`@@Z@ Z@ |f@@Z@ Z@ }@Z@ ~Z@ H@@ @ G[@ E@@ @ D[@ A@5f6f@@R@]FEC@@AB@@D@@A%param A@@9G@@ABC@@G@  , ULfMf@A3A@@@  , UQf8@@7A+@BC@@FA  , UZd[d@AAA5@#@A C@@E  , UŰddK@@JA=EA  , U˰jciwkci@AQBDʰ@1@A0C@@D  , Uհtcik[@@ZALD@  , Uٰxb#1yb#eAA	"C.generate_lib_libnbd_syms.extractA@@@  , Ux߰~b#%e@@dAUܰA@>@AB@@CA  , Utaa@AnB_@M@AI@B@@B  , U`ax@@wAgB@  , UT``AA>C.generate_lib_libnbd_syms.cmpA@@@  , UH]AC]A\@@@Z@ Cw @a@A@@A@  , U,	
@@@|A@  , U$`AA	$C.generate_lib_libnbd_syms.cmp.(fun)A@
	@@  , U@A`@!a {@@ @ @@ @ @ @ @``@@'J"@'*match*OB@@AC@@ ~A@@AB@@CA  , U 5?A<@#0@@A@@A  , T:`D@/B.!b |G@@ @ +D@@ @ ,@ @ *@``@@PKK@)AB@@AC@@ }A@@AB@EB@@A@C@  , T]#@OAX
CA  , TaUAS@P\@@A
@A  , Tfb#R@AA@cb@@  , Tj@A@-first_version w@@ @ t@@ @ @ @ @b#7b#D@@N$call @@ @ ]@ @ @ @+b#O@@O@h3B@@AA@@(C@@AB@@CA  , TA@/@	@A@@A  , T? A@ A@A A@@@  , TD A@A$A@@@  , TH @I @@@@[@ =-A,%major .Z@ X@XhYh@@S%minor 1Z@ Y@ahbh@@T%calls  t@@Z@ ƚ\@ ]8@@Z@ ȃZ@ ^@Z@ _\@ X@@Z@ WZ@ V@~hh@@Uް@1C@@A#B@@8E@@A0D@@H A@@ABC@B@@A@E@  , Th@
@@[@ xAKE@  , TP
]@@|ANE@  , TD	{->{-@@@AS@,F$@A"!C@F@  , T4	}is}i@e@@[@ ǅCe)old_major @|AP|AY@@	W)old_minor @|A[|Ad@@	$X	@-G$@ACAB?@I@@AH@@B@ABC@@I@  , T	2&@A	-I@  , S	4y
y@M@@[@ =A	7YE@  , S	>
@@A	:\E@  , S	Avv@Z@@[@ ŐA	D@".Fi@AgfC_@F@  , S	Quu@j@@]@ ՐA	TF@  , S	[
v@@A	XF@  , S	_ww@@A	]F@  , Sx	dr.4r.n@@@[@ VB	gE@  , Sh	n
r.>r.h@AA@	l	k@@  , ST	s@@A	oE@  , ST	vpp$@(@@[@ P\@ &A	{E@  , S<	!o"o@@@\@ A	E@  , S$	+n,n@@@\@ A	E@  , S	5m6m@@@\@ őA	E@  , R	?ly@q%,@@ A	E@  , R	DlyEly@9@@\@ ŉ\@ z+B	E@  , R	Ply@A0A@		@@  , R	TkagUkaw@@@[@ K9A	E@  , R	^j8>_j8_@@@[@ CC	E@  , R	ɰhiii6@@@[@ iMC 	E@  , Rx	Ӱ
2@@QA#	EA  , RT	XAU@P	Ӱ@@A@A  , R8	ݰ|r.P}r.g@@]A0$name @r.Dr.H@@	V	@B@@AF A@@B@@BA  , R,	Ao@A	@@A@@A  , R 	 I		@@A	> D@	@Y A@@A@@AC  , R
 G	V	u G	V	@@A
A  , R 
 F		L F		U@@A
	A
  , Q
A@
A  , Q
 N
(
@ N
(
I@@A	; K		@
@w A@@A@@AI  , Q
# M	
" M	
'@@A
!A  , Q
) U

@@A
&A  , Qt
. T

 T

@@A
,A  , Qd
4 S

 S

@@A 
2A  , QT
: R

 R

@@A&
8"A  , QD
@ Q

 Q

@@A,
>(A$  , Q4
F O
J
X O
J
a@@A2
D.A*  , Q$
L P
b
w P
b
@@A8
J4A0  , P
RA@;
M7A3  , P
U n

@AA@
R
Q@@  , P
Y@A
>i W@!nZ@@ @ k@	 n

	 n

@@
it
d@B@@AA@@B@@BU  , P
s	 m
o
	 m
o
@AA@
q
p@@  , P
x@
A!nu@@ @ h@	 m
o
z	  m
o
{@@
s
@B@@A@B@@B  , P
	* l
[
k	+ l
[
n@A#A@

@@  , P
@%A7!n@@ @ e@	7 l
[
f	8 l
[
g@@
r
@B@@A3@B@@B1  , Px
	B k
I
W	C k
I
Z@A;A@

@@  , Pl
@=AO!n@@ @ b@	O k
I
R	P k
I
S@@
q
@B@@AK@B@@BI  , PX
	Z j
1
E	[ j
1
H@ASA@

@@  , PL
@UAg!n @@ @ _@	g j
1
@	h j
1
A@@
p
ǰ@B@@Ac@B@@Ba  , P8
Ӱ	r i

-	s i

0@AkA@

@@  , P,
@mA!n @@ @ \@	 i

(	 i

)@@
o
߰@B@@A{@B@@By  , P
	 h
	 h
@AA@

@@  , P
	 h
AAA@

@@  , P 
	@A!n @@ @ X@	 h
		 h
@@m#len @@ @ Y@	 h
	 h
@@n@B@@AC@@@AB@@C  , O	 g	 g@AA@@@  , O@A!n 	@@ @ T@	 g	 g@@&l!@B@@A@B@@B  , O-	 f	 f@AA@+*@@  , O2@A٠!n 	/@@ @ Q@	 f	 f@@>k9@B@@A@B@@BӠ  , OE	 e	 e@AA@CB@@  , OJ@A!n 	G@@ @ N@	 e	 e@@VjQ@B@@A@B@@B  , O]	 d	 d@AA@[Z@@  , Oxb@A	!n 	_@@ @ K@
	 d

 d@@nii@B@@A@B@@B  , Odu
 c
 c@A
A@sr@@  , OXz@A!!n 	w@@ @ G@
! c
" c@@h@B@@A@B@@B  , OD
, b
- b@A%A@@@  , O8@'A9!n 	@@ @ C@
9 b
: b@@g@B@@A5@B@@B3  , O(
D aAS
E aA_@	>BP@?@A@@A@  , O	@CATA?  , O
P `*=
Q `*@@AIA@@@  , N@KA]!n 	@@ @ <@
] `*4
^ `*5@@f@B@@AY@B@@BW  , Nɰ
h _
i _)@AaA@@@  , Nΰ
m _
n _@	Z@ iB|&cbname 	@@ @ 6@
{ ^
| ^@@e۰@`B@@AC@@z@AB@@D@  , N
 _
 AAA@@@  , N
 _'@	Z@ BD@  , N,@A C  , N
 ]
 ]@AA@@@  , Nx
 ]AAA@@@  , Nl	@A!n 	@@ @ .@
 ]
 ]@@c#len 

@@ @ /@
 ]
 ]@@d@B@@AC@@@AB@@C  , NP"
 \z
 \z@AA@ @@  , ND'
 \zAAA@$#@@  , N8+	@AӠ!n 
)@@ @ )@
 \z
 \z@@8a#len 
4@@ @ *@
 \z
 \z@@Cb>@B@@AC@@@AB@@Cڠ  , NL
 [Xq
 [Xy@AA@JI@@  , NQ
 [XuAAA@NM@@  , NU	@A!n 
S@@ @ $@
 [Xf
 [Xg@@b_#len 
^@@ @ %@ [Xi	 [Xl@@m`h@B@@AC@@@AB@@C  , Mv Z7O Z7W@AA@ts@@  , M{ Z7SAAA@xw@@  , M	@A'!n 
}@@ @ @' Z7D( Z7E@@]#len 
@@ @  @2 Z7G3 Z7J@@^@B@@AC@@0@AB@@C.  , M? Y%3@ Y%6@A8A@@@  , M@:AL!n 
@@ @ @K Y%.L Y%/@@\@B@@AG@B@@BE  , M<OAL@]
AH  , M4Y s

X@@WA
^ p

]@!n	
@@ @ q@g s

h s

@@wǰ@B@@A*
A@@B@@BB  , M ְu r

v r

@@tA&cbname
@@ @ h@ r

 r

@@v߰@eB@@AC@@@AB@@C  , LA@1@ @A@@A  , L  $@@A
̐ y@@VA@@A@@AF  , L
 }5a }5p@@A
 A  , L
 Zn Zv@@A!nK@@ @ @ Zi Zj@@
{
A  , L
  @@A(!n
(@@ @ @  @@
(y#len'@@ @ @  @@
2z
-8A4  , L
5 DV@ ِBC
4?A@  , L
;@AE
6AA=  , L
> 
: 
C@@AK
<GAC  , L,
DA@N
?JAF  , L
G @@@
0 @
H@A@@A@@A@  , K
S 2@ 2k@AA@
Q
P@@  , K
XAA@
S
R@@  , K
Z  @	s@@Y@ ۱B
T
E aa@
BT
@@@ @ Y@ *@ aq au@@
z u
=U
;@@Y@ 
Y@ 3@! aw" a}@@
 v
8V
6@@Y@ Y@ <@- a. a@@
 w$nameW
6@4 a5 a@@
 x$argsX
1@; a< a@@
 y'optargsY
+@B aC a@@
 z#retZ
%@I aJ a@@
 {1designator_column[1@@ @ ۤZ@ ۡ@V W @@
 |
@'C@@A;E@@H@@AKF@@BC4D@@)B@@A#A@@^G@@ABD@mC@@B@@AB@H@  , K
Ұx@@Aq
HA  , K
װv w @AAx
ְ @@ABC@G  , K
  @	@@Y@ _B
G@  , K
 
@
@@Z@ ۅ[@ ۛA
G@  , K|
@@@
G@  , KT
##@
@@Y@ Z@ B

z@
w^
u@@ @ ܟY@ 4@@@ ~
r_
p@@Y@ ܛY@ =@@@) $name`
p@@@0 $argsa
n@@@7 'optargsb
e@@@> #retc
]@@@E #nnsd
Ǡ
@@ @ @@ @ @"I"O"I"R@@U #nnse@@ @ hZ@ b @@ @ uZ@ c@ @ dZ@ T@@ @ SZ@ O@
""
"#@@t #nnsh3@@ @ ݕZ@ }@@ @ |Z@ x@
"#,#2
##,#5@@ #nnsl	>@@ @ ݡ@@ @ ݠ@
2#u#{
3#u#~@@ @lC@@AE@@vD@@J/IPHbG@@ABCqB@@lA@@F@@ABD@B@@AjC@@D@@AB@J@  , K<
S##j@@iAJA  , K8
Y#u#
Z#u#@ApB'%@$@!@ABCD@I
  , Kư
e#u#w|@@{A
IA  , K̰
k#,#8
l#,#q@AB˰97@6@1@ABC.-D)@H
  , Kذ
w#,#C
x#,#m@A4C.print_fndecl.(fun)A@@@  , Jް
}#,#.@@AHA  , J
"#
"#(@ABQO@N@G@ABCFEDA@G
  , J
"#
"#$@AA@@@  , J
""@@AGA  , J
"a"e
""@ABhf@e@AB\[CW@F  , J
""@$listI@@Z@ Z@  @@Z@ Z@ ːBF@  , J
""@[@ @@[@ [@ ِA "(G@  , J)
""@cg%\@ @@\@ @@\@ \@ B35;G@  , J<
""A@6 @@[@ [@ .A?AGF@  , JpH
""M@B\@ /@@\@ 1@@\@ 0\@ 6		BPRXF@  , JXY
"I"K	@@	ATV\F@  , JT]
!I!S
!I!U@@	AY[aF@  , JLb
!!

!!G@{@@Y@ ܻ	AcekF@  , J4l
@	AegmF@  , Jn
 @
@@Y@ ܔ	(GoqwF@  , Ix@@@Y@ `	2Ay{F@  , I
	7@@	6@|~F@  , I$"#%"##@AA@@@  , I@@!if@@Z@ jZ@ Y@4"#5"#@@ !bg2Z@ V@<"#="#@@ @A@@B@@AB@@B@  , IlG#,#hH#,#l@@A!ii3Z@ ݄@P#,#IQ#,#J@@ !bj
H@@Z@ ݌Z@ ݅@\#,#L]#,#M@@ @B@@AC@@!kA@@AB@@C@  , Id˰j#,#\k#,#b@AA@@@  , IX@A%C@  , IPҰq#,#R*@@A)CA  , I< A@Ӱ@@A@@A  , I ݰ|u.S.U}y..@0@@Z@ &	BkZ*g*g	@)oclosures
$1'closure@@ @ [@ @@ @ [@ @o-H-No-H-W@@ @B@@A]A@@B@B@@A@B@  , I	u.S._y..@A=C.print_closure_structs.(fun)A@@@  , I 2	@@	A+B@  , Ht.-.1t.-.O@'	ϐB4'optargs	$listI@@ @ @@ @ \@ @@ @ \@ @p-Z-bp-Z-i@@3 'optargs
m#@@ @ \@ @@ @ \@ @q--q--@@F 'optargsҠ[@@ @ \@ @@ @ \@ @r--r--@@X S@D+CFB@@A]@B[@D@  , Hbt.-.@t.-.G@A
A@`_@@  , HgU@
 APbDA  , Hk
s--s-.)@A
'BWj@@Ao@Bm@C  , Hus--s-.!@AlA@sr@@  , Hzr--h@@
5Adw
CA  , Hq-- q--@A
<Ak@(@A@B@B  , H)q--x@@
EAsBA  , H/p-Z-l0p-Z-@A
LB@@A@A
  , H8p-Z-u9p-Z-@AA@@@  , Hl=n-:-<>n-:-F@@@Z@ k
^AA@  , HTGm--Hm--8@@@Z@ 9
hAA@  , H<Ql,,Rl,,@@@Z@ 
rA&A@  , H$[^++!\j,,@@@Z@ 
|B0A@  , Hưe^+++fj,,@AA@@@  , G˰j]++k]++@@@Z@ 
A?A@  , Gհt\**u\*+@@@Z@ 
AIA@  , G߰~[**[**@@@Z@ f
ASA@  , G

@@
@VA@  , Gg,<,Bh,o,@
@@\@ }B&cbname@@ @ @_+-+7_+-+=@@  &cbargsߠ@@ @ @@ @ @_+-+?_+-+E@@ 
@B@@AC@@	oA@@AB@
&B@@A@C@  , G|h,o,w/@
@@]@ ^@ A0C@  , Gh&f,,f,,:@
?@@\@ /!B:)C@  , GL0e++e+,@
I@@\@ +AD3)C@  , G4:d++d++@
S@@\@ 5AN=3C@  , GDc++c++@
]@@\@ ?AXG=C@  , GNb++b++@@@\@ yIFbQGC@  , FXa+j+pa+j+@
q@@\@ FSAl[QC@  , Fb`+K+Q`+K+h@
{@@\@ ]Ave[C@  , Fl
i,,@@bAzi_CA  , FrAf@m@_@A]@A  , Fwp-Z-p-Z-@@nA'optargsZf@@ @ @@ @ @$p-Z-%p-Z-@@ @	bB@@AC@@	A@@AB@@CA  , FxA@@@A@@A  , Fl:s-.;s-. @@A@	A@@A@@AB  , FdEs-.
Fs-.@AA@@@  , F\@A"cb@@ @ @Qs-.Rs-.	@@ @B@@A@B@@B  , F<HA@A  , E_x..`x..@e@@\@ m]@ A&cbname@@ @ 0@pv.a.kqv.a.q@@ а@B@@A
3A@@B@@C@  , Eݰ|w.w.}}x..@@ABA  , EA@߰@
@A@@A  , E////@@@Y@ 'B
g|//@
d
b@@ @ Y@ @|//(|//,@@ $name
b@|//-|//1@@ $args
`@|//2|//6@@ 'optargs
Z@|//7|//>@@ #ret
T@|//?|//B@@# *name_upperb@@ @  Z@ @}/E/K}/E/U@@0 +@'C@@A/D@@F@@AB$B@@A@@BE@@ABC@B@@A@F@  , EA~/w/y~/w/@Z@@Y@ 
FXDF@  , EdK
@@A[GFA  , E`P}/E/X}/E/s@AAbO@#@#@AB C@E  , EL[}/E/G@@@kX	E@  , E_0c0e'@@&AV
//0@"ns
@5//@@p (ns_upper
@////@@w $ctxt
@///0@@~ *ctxt_macro&stringO@@ @ Z@ @(00)00@@  *ctxt_upperj@@ @ Z@ @40+0150+0;@@ @'A@@A!D@@E@@AB8C@@4B@@AC@@EA  , EG0+0>H0+0_@ApAJ@@@ABC@@D  , E R0+0-{@@zAS	DA  , DX00Y00'@AAZ@#@AB@@C  , Dðb00@@@bC@  , Dǰf1@1Ng1@1@A:C.print_ns_ctxt_bits.(fun)A@@@  , DͰl11m11>@@@Y@ C
ؐy00@"ns
@~00@@ Š$ctxt
@0000@@ Ơ&consts
@0000@@ @A@@AB@@C@@AB@@C@  , D0001 @@@Y@ ːA,C@  , Dt00@@A0 C@  , D`00@@@4C@  , D41@1]1@1@@DA;!n
@1@1T1@1U@@ Ƞ!i
@1@1W1@1X@@ @B@@AC@@~A@@AB@@CA  , D *cA`@U%@@A@@A  , D/223 3	@@@Y@ $
B,
11
@"ns 
@
11@@D ˠ%ctxts
@1111@@K ̠(ns_upper(@@ @ Z@ @1111@@W R@A@@AB@@C@@AB@B@@AbC@@B@C@  , Cd223 3@A0C.print_ns.(fun)A@cb@@  , Cj	2i2k
22@@@Y@ 
BB;mC@  , Ct2i2u22@AA@rq@@  , Cy2<2>2<2g@@@Y@ 
QBJ|*C@  , C"2123#212:@@@Y@ 
[AT4C@  , C|,11-12/@@@Y@ 
eC^>C@  , C\611711@@@Y@ 
oBhHC@  , CD

t@@
sAkKCA  , C@E11F11@A
zAr@R@R@ABO@B  , C,O11
@@
@zB@  , CS2w2T2w2@@PA$ctxtfZ@ @\2w2]2w2@@ @
B@@AA@@B@C@@AD@@B@@AB@BA  , B]Aj@̰@@A@A  , Bְu22v22@@rA$ctxt@}22~22@@ Ϡ&consts@2222@@ @B@@AC@@IA@@AB@C@@B@@AB@CA  , BA@@@A
@A  , B???@@@@Z@ 
ܐA33
@@f&A@@A@B@@AC@@D@@AB@A@  , B????@/@@Z@ 
AA@  , B ????@9@@Z@ 
A"#A@  , Bp*????@C@@Z@ A,-(A@  , BX4?r?t ??@@@Z@ TB672A@  , BH>?r?~ ??@A	!C.generate_include_libnbd_h.(fun)A@=<@@  , B(D>>?`?p@@@Z@ 
"BFGBA@  , BN>>?`?c@AA@LK@@  , AS>>>>@l@@Z@ 1AUVQA@  , A]>>>>@v@@Z@ ;A_`[A@  , Ag>>>>@@@Z@ EAijeA@  , Aq>>>>@@@Z@ qOAstoA@  , A{>P>R>P>@@@Z@ ?YA}~yA@  , A$>5>7%>5>N@@@Z@ 
cAA@  , Ax.>'>)/>'>3@@@Z@ mAA@  , A`8==9=>%@@@Z@ wAA@  , AHB==C==@@@Z@ wAA@  , A0L==M==@@@Z@ EAA@  , AV==W==@@@Z@ AA@  , A `=u=wa=u=~@@@Z@  AA@  , @˰j=G=Ik=G=s@@@Z@  AA@  , @հt==u==E@@@Z@  }AA@  , @߰~=	==	=@@@Z@  KAA@  , @<<<=@@@Z@  ǐAA@  , @<<<<@@@Z@ ѐAA@  , @p<n<p<n<@@@Z@ ېA A@  , @X<c<e<c<l@ @@Z@ A	
A@  , @@<9<;<9<a@*@@Z@ QAA@  , @(;;;<7@4@@Z@ AA@  , @%;;;;@>@@Z@ A'(#A@  , ?/;j;l;;@@@Z@ 
B12-A@  , ?9;j;v;;@AA@76@@  , ?>99;[;h@@@Z@ B@A<A@  , ?H99;[;^@A
A@FE@@  , ?M8899@@@Z@ +BOPKA@  , ?W8899@AA@UT@@  , ?t\8888@u@@Z@ j:A^_ZA@  , ?\f8888@@@Z@ 8DAhidA@  , ?Dp8888@@@Z@ NArsnA@  , ?,z8888@@@Z@ XA|}xA@  , ?#8k8m$8k8@@@Z@ bAA@  , >-8[8].8[8i@@@Z@ plAA@  , >788 888Y@@@Z@ >vAA@  , >A77B78@@@Z@ AA@  , >K77L77@@@Z@ AA@  , >U77V77@@@Z@ AA@  , >_7N7P`7N7@@@Z@ vAA@  , >lʰi7=7?j7=7L@@@Z@ DAA@  , >T԰s7
7t7
7;@@@Z@ AA@  , ><ް}66~67@@@Z@ AA@  , >$6666@@@Z@ ƐAA@  , >6666@@@Z@ |АAA@  , =6?6A6?6@@@Z@ JڐAA@  , =6666=@@@Z@ A	A@  , =6	66	6@)@@Z@ AA@  , =5556@3@@Z@ AA@  , =$5555@=@@Z@ A&'"A@  , =|.5555@G@@Z@ PA01,A@  , =d85a5c5a5@Q@@Z@ A:;6A@  , =LB5V5X5V5_@[@@Z@  ADE@A@  , =4L5E5G5E5T@e@@Z@ *ANOJA@  , =V5,5.5,5C@o@@Z@ 4AXYTA@  , =`55 55*@y@@Z@ V>Abc^A@  , <j	55
55
@@@Z@ $HAlmhA@  , <t4445@@@Z@ RAvwrA@  , <~4444@@@Z@ \A|A@  , <'44(44@@@Z@ fAA@  , <144244@@@Z@ \pAA@  , <t;44<44@@@Z@ *zAA@  , <\E4]4_F4]4@@@Z@ AA@  , <DO4'4)P4'4[@@@Z@ AA@  , <,Y44Z44%@@@Z@ AA@  , <İc33d34@@@Z@ bAA@  , ;ΰm33n33@@@Z@ 0AA@  , ;ذw33x33@@@Z@ AA@  , ;3o3q3o3@@@Z@ AA@  , ;3T3V3T3m@@@Z@ ʐAA@  , ;393;393Q@@@Z@ ԐCA@  , ; 
@@@A@  , ;d9999@V@@\@ ɐB+enum_prefix
	@@ @ @8889@@ Ҡ%enums@@ @ )@@ @ @ @ @@ @ @89	89@@0 +@'C@@AB@@A@@AB@@C@  , ;T:99$99@AA@87@@  , ;D?<99@@ A6<CA  , ;0EA@?@@@A@@A  , ;J9999@@AE$enum@@]@ ]@ @9&939&97@@\ Ԡ!i
6@@]@ ]@ @9&999&9:@@h ՠ$enum&stringO@@ @ _@ @9?9M9?9Q@@w r@D-C@@A"B@@A@@AB@vB@@A@DA  , ;&9?9T'9?9{@AIC=@@AB
@C  , :09?9IG@@RAECA  , :]AV@@@A@A  , :;;;$<;;K@@@\@ ebC+flag_prefix@@ @ @N99O99@@ נ%flags@@ @ @@ @ @ @ @@ @ @f99g99@@ ؠ$maskY@@ @ ]@ @@ @ ]@ @x::y::@@ ٠$flagu@@ @ ]@ @::::@@ @E@@AGC@@B=B@@(D@@AMA@@BC@@E@  , :[;M;Z@@AUEA  , ::::;@AB\@@AC@@D  , :::$::@Z@@\@ ͐Bj
D@  , :p::.::@AA@@@  , :\@@ArD@  , :X::::@AA@@@  , :P::
(@@Az3@0@AB@@CA  , :<'A@!"@6@A@@A  , :,::::@E@@^@ xC$flag@@]@ d]@ @:0:=:0:A@@C ڠ!i@@]@ ]@ @:0:C:0:D@@P ۠$flag@@ @ _@ @:I:W:I:[@@\ W@D+C@@A B@@A@@AB@B@@AC@@B@D@  , : l@::@@-A:iDA  , 9r:I:^:I:@A4CAq@@AB@C  , 9|:I:S@@=AIyCA  , 9qAA@}@ @A@A  , 9&;;';;@@IA!n1@@[@ a[@ @4;x;5;x;@@ ޠ!is@@[@ [@ @@;x;A;x;@@ ߠ!n=@@ @ ,]@ &@L;;M;;@@ @B@@AD+C@@A@@AB@@DA  , 9^;;_;;@AB8
B@@C
  , 9Ȱg;;A@@A?CA  , 9|A@ɰ@@A@@A  , 9XӰr?!?'s?!?_@@AԠ$name~@@[@ 8[@ @>? >?@@ $argsŠ@@ @ @@ @ @>?>?@@ 'optargs Ԡ@@ @ !@@ @  @>?>?@@ #ret!B@@ @ $@>?>?@@
 @B@@A.E@@<F@@AB"D@@r"A@@C@@ABC@B@@A@FA  , 9,"A@@@A@A  , 9'????@@A&"ns#@@[@ n[@ [@????@@8 %ctxts$r@@[@ i|@@[@ l&@@[@ m@[@ k@@[@ j@[@ h@@[@ g[@ \@????@@Z U@&B@@A3C@@%A@@AB@)B@@A@CA  , 9h*A'@bc@
@A@A  , 8mA_Aa
A_Ah@@@Z@ QAi됰@'@'W@t@.A@@A@B@@A@A@  , 8 
@@!AMA]@@@Z@ .eBA@  , 8*
@@+AMAP@A?C.generate_lib_unlocked_h.(fun)A@@@  , 80@@1@@@@@Z@ uA$ A@  , 8:@@;@@@@@Z@ A.*A@  , 8xD
@c@eE
@c@@@@Z@ A84A@  , 8`N@H@JO@H@`@@@Z@ CB>A@  , 8D
@@@EAA@  , 8$[@A!\@A5@a@@\@ Z]@ l7BU$name)&stringO@@[@ m[@ 5@t@@u@@@@ $args*@@ @ =@@ @ <@@@@@@@ 'optargs+	Ơ@@ @ B@@ @ A@@@@@@@ #ret,4@@ @ E@@@@@@@ @B@@A-E@@>F@@AB"D@@d-A@@C@@ABC@}B@@A@I@  , 8 @@A6AL@@AOFA  , 7A@@@A
@A  , 7B6B:@$listIc@@Y@ (@@Y@ 'Y@ 0B(AA@%*opt*1Π@@ @ @AAAAA@B 2Y@ @AA@@H 0permitted_states4@AAAA@@O #sep5@@ @  Z@ @AAAA@@[ V@(B@@AC@@A@@D@@ABC@@D@  , 7fB6BD!C;CC@A<C.permitted_state_text.(fun)A@ed@@  , 7lB"B$R@@QA?iD@  , 7pABAB@@VACn@@AB@@C@  , 7xAB	AB@@^AKvC@  , 7t}AAc@@bAOzC@  , 7p AA!AA@1@@Y@ kBYC@  , 7@
p@@oA\C@  , 78-AAP@@sA^@5@A2@B@@B@  , 7(@xAd%*sth*3@@ @?@AC@@>@AB@@C@  , 7@@qB@  , 6B C!C4C C!C:@@=Aw@6A@@A@@AF  , 6MC CNC C @@HAA  , 6SBBTBB@@NAA
  , 6YBBZBB@@TAA  , 6_B~B`B~B@@ZAA  , 6ưeBXBnfBXB}@@`A#A  , 6fAc@&A"  , 6\ϰnwwoww@@@Z@ ;pA
{'CC@-print_wrapper9@@@ @ 4e[@ O@@ @ [@ @ @ [@ l@@ @ h[@ m@ @ n[@ i@)D!D+)D!D8@@ 1print_trace_enter:@[@ o@?@@ @ 1\@ 1@@ @ 1[@ p@L@@ @ /]@ /@@ @ /[@ q@@@ @ !A[@ r?@@ @ 1[@ s@ @ t@ @ u@ @ v@ @ w[@ j@^^^^@@1 1print_trace_leave;@N[@ x@y@@ @ 29[@ y@@@ @ 6[@ z^@@ @ 7p[@ {@ @ |@ @ }@ @ ~[@ k@kookoo@@P K@A@@AXC@@(D@@A|B@@BC@B@@AE@@BD@@C@@AC@D@  , 6Ddwmwowmw@}@@Z@ ;>TAgD@  , 6,n
wMwOwMwk@@@Z@ ;^Aq&D@  , 6xwBwDwBwK@@@Z@ :hA{0D@  , 5!ww"ww@@@@Z@ :rA:D@  , 5+ww,ww@@@Z@ :v|ADD@  , 55vv6vw@@@Z@ :DAND@  , 5?vsvu@vsv@@@Z@ :AXD@  , 5Iv)v+Jv)vq@@@Z@ 9AbD@  , 5Svv Tvv'@@@Z@ 9AlD@  , 5l]uv^uv@@@Z@ 9|AvD@  , 5TȰguuhuu@@@Z@ 9JAD@  , 5<Ұquuruu@@@Z@ 9AD@  , 5$ܰ{uu|uu@@@Z@ 8̐A
D@  , 5uuuu@@@Z@ 8֐AD@  , 4u{u}u{u@	@@Z@ 8A!D@  , 4u]u_u]uy@@@Z@ 8PA+D@  , 4u@uBu@u[@@@Z@ 8A5D@  , 4u5u7u5u>@'@@Z@ 7A?D@  , 4uuuu3@1@@Z@ 7AID@  , 4|"tttu@&@@Z@ 7CS%D@  , 4`,
@@AV(D@  , 40/)D!D#@@@W,@@A@A@  , 45tttt@@	&C.generate_lib_api_c.print_trace_leaveAf$nameV[@ !@kookoo@@E]#ret
[@ @kookoo@@M^-may_set_error[@ @kookoo@@U_*print_args@@@ @ 3\@ 3x@@ @ 4\@ 3@ @ 3\@ 3@qqqq@@jae@!A@@A2C@@D@@A.B@@BC@B@@AE@@BD@@C@@AC@ @@AN@@@ @@ABD@  , 4"tt#tt@5@@[@ 7h\@ 7>TAT#D@  , 3@WAV%D@  , 30tt1tt@@\A[*D@  , 35t{t6t{t@@@\@ 7eAe4D@  , 3
@hAg6D@  , 3AtItcBtt@@mAl;D@  , 3Ft:t>Gt:tG@@@[@ 6vAvED@  , 3Ptt"Qtt8@@@[@ 6COD@  , 3x
@@ARD@  , 3t]qq^ttAA	1C.generate_lib_api_c.print_trace_leave.print_argsA@@@  , 3\İcqq@@A\Z@W@ABVNC@  , 3\˰j~qqk~qq@@@[@ 3\@ 3AC@  , 3D@AC@  , 3<ٰx{qqy{qq@AC@  , 3$@AC@  , 3 yqqyqq@@AC@  , 3xqBqLxqBq@ @@\@ 3dA)C@  , 3 wqqwqq@@
@@^@ 33A3C@  , 2
@@A6C@  , 2tpptpp@@@\@ 2͐A@C@  , 2sppspp@!@@\@ 2אAJC@  , 2
8@@AMC@  , 2qp[plqp[px@.@@\@ 2XB@UD@@A@B[CD@  , 2t%@A D@  , 2d'pp4p>pp4pY@B!r]@@ @ 2D@op!p/op!p0@@7`2@E@@A@BCE@  , 2L>@A9E@  , 24@nop	nop@vt@@ @ 28@@ @ 27AGC@  , 2(Nmoo|qq@@ALC@  , 2Slooloo@l@@[@ 2"A!VC@  , 2]
'@@&@$YC@  , 1`ss ss@@A*@a@A@@A@ D@@A1B@@+C@@AB@A@  , 1rrrrr@@ApA@  , 1wrrrr@@AuA@  , 1|ssst@@AzA@  , 1l ss!ss@@A!A@  , 1P%ss1&ssa@@A&#A@  , 14*rs+rs@@A+(A@  , 1/sbs|0sbs@@A0-A@  , 04rprv@@A41A@  , 08r@rH9r@rn@@@]@ 4^@ 45B@=A@  , 0@AB?A@  , 0FrrGrr4@AIFA@  , 0@AKHA@  , 0Oqr@@@OLA@  , 0pS[mlmpTho2o<@@@[@ 1 	&C.generate_lib_api_c.print_trace_enterB$name[@ 2@j^^k^^@@($args[@ 
@r^^s^^@@)'optargs[@ 
@z^^{^^@@*-may_set_error[@ 
@^^^^@@+&indenti@@ @ !v\@ !@@aaaa@@03print_format_string@R@@ @ "\@ "Q@@ @ )\@ "@ @ "\@ "@bbbb@@	1(num_args#intA@@ @ +-\@ +)@2gg2gg@@G+num_optargs@@ @ +4\@ +*@3gg3gg@@$H+num_allargs@@ @ +>\@ +:@4gg4gg@@0I*print_args@@@ @ +\@ +@@ @ /\@ +@ @ +\@ +@7h=hE7h=hO@@FJA@|C@@fE@@ABoA@@D@@.I@@ABCJG@@>H@@AB@@*J@@AgF@@BCD@E@@AH@@B G@@F@@AC@h@@@A6C@@ @@ABJ@  , 0`k
[mlmzho2o7@A	,C.generate_lib_api_c.print_trace_enter.(fun)A@ji@@  , 0LqZm]maZm]mj@@@[@ 0At3J@  , 04{YmAmEYmAm[@d@@[@ 0ǐC~=J@  , 0
$io>oL@@AAJ@  , 0(7h=hP)Wm*m9AA	1C.generate_lib_api_c.print_trace_enter.print_argsA@@@  , /.7h=hA@@AJFFBA?@<@ABCD;3I@  , /76h$h*86h$h;@J@@[@ +\@ +YBI@  , /@AI@  , /E5hh"@@AI@  , /I4gg&@@Aea@b@A_]B[CDVNHA  , /T3ggU3gg@AArn@n@l@ABh)CDc[G
  , /`2gga2gg@
A{@{@At5BCogF@  , /̰k1gzg~l1gzg@@@[@ *AF@  , /tְu0gTgXv0gTgx@@@[@ *#BF@  , /`\@@'A!F@  , /\bb.g=gLAA	:C.generate_lib_api_c.print_trace_enter.print_format_stringA@@@  , /Hbbbb@@@[@ !6B0,@BCE@  , /0
r@@=A6E@  , /,
bb
bb@\@ !EA>@@ACD@  , /bMbUbMb@@@\@ !RBK	
D@  , .b@bKbb@@XAPD@  , .	b&b.	b&b7@-^AWD@  , .bbbb$@5@@\@ !IhAa#D@  , .&ab
b8b?@@nAf$(D@  , .+^^aa@~@@[@ wBp.2D@  , .5^^aa@AA@32@@  , .:^^^^@S@@[@ A=AD@  , .xD
@@@@DD@  , .LG____@`@@^@ B!nz@@ @ _@ @____@@].fY@C=B@@AA@@B@@C@  , .4i"_`6@@AgCE  , . p_6_?_6_`@@@^@ ;	B!nQ@@ @ _@ @#^_$^_@@,%countR@@ @ _@ @/^_
0^_@@-g
h@D;B@@A
E$:C@@=@AB@@E@  , -4C_b_@@8A.*E<  , -J`O`XK`O`y@@@^@  DB!n@@ @ @Y`7`JZ`7`K@@/@B@@A]@B@@B@  , -İc`{`@@XABZ  , -ɰhaaiaa@@@\@ cBͰ@o@A@@A@  , -l
@hAAj  , -`ٰxa<aya<a@@nA
Ap  , - Aq@
As  , ,*ff.g=gD@A	@C.generate_lib_api_c.print_trace_enter.print_format_string.(fun)A@@@  , ,bb)ff@;@@]@ "QB/bb@@PA@@A@,B@@A%C@@B@A@  , ,bb)ff@AA@@@  , , bbbb@@@]@ ""#A A@  , , 

(@@'@ 	A@  , , #ee#ee@@.A%!n>@@ @ "a@ "@"ee"ee@@ !?` @C2B@@AA@@B@@CQ  , ,T /ddde@@MAD!n@@ @ "a@ "@dddd@@ @:a <@C0B@@A@B@@C  , ,$ KcNcvcNc@@iAb!nQ@@ @ "ca@ "^@c0cDc0cE@@ ^3%countR@@ @ "da@ "_@c0cGc0cL@@ j4b
c g@D*B@@A
E$)C@@O@AB@@EM  , + {cccd@@A!nW@@ @ "oa@ "j@)cc*cc@@ 5%countX@@ @ "pa@ "k@5cc6cc@@ 6d
e @D.B@@A
E$-C@@@AB@@E}  , + J(fxfK(fxf@@A!nQ@@ @ "@T(fxfU(fxf@@ D @B@@A@B@@B  , + _'fJf``'fJfw@@AԠ!nK@@ @ "@i'fJf[j'fJf\@@ C ɰ@B@@A@B@@B  , +` հt&ff2u&ffI@@A!nH@@ @ "@~&ff-&ff.@@ B ް@B@@A@B@@B  , +8 %ef
%ef@@A!nE@@ @ "@%ef%ef	@@ A @B@@A@B@@BѠ  , + $ee$ee@@A!nB@@ @ "@$ee$ee@@!
@!@B@@A@B@@B  , *!!eTey!eTe@@2A)!n#@@ @ "@!eTen!eTeo@@!#=#len"@@ @ "@!eTeq!eTet@@!->!(@B@@AC@@
@AB@@C  , *!6 e/eD e/eS@@TAJ!n@@ @ "@ e/e? e/e@@@!D<!?@B@@A@B@@B  , *!Keeee.@@iA_!n@@ @ "@eeee@@!Y;!T@B@@A4@B@@B2  , *d!`dd  dd@@~At!n@@ @ "@ 	dd 
dd@@!n9!i@B@@AI@B@@BG  , *T!u ded} ded@@@^@ "UB!x@V@A@@A@  , *<!@A!|AV  , * ! #d=dV $d=dd@@A!n@@ @ "@ -d=dM .d=dN@@!8!@B@@Am@B@@Bk  , )! 8d	d) 9d	d<@@A&cbname~@@ @ "y@ Bd	d Cd	d#@@!7!@3B@@AC@@@AB@@C  , )! Pc
c! Qc
c/@@AŠ!n@@ @ "Z@ Zc
c [c
c@@!2!@B@@A@B@@B  , )\!A@!IA  , )@!ɰ h-gg, i-gg<@@Aݠ!n@@ @ )@ r-gg  s-gg!@@!F!Ұ@B@@A5A@@B@@BB  , )! ,ff ,fg
@@A&cbname@@ @ )@ ,ff ,ff@@!E!@#B@@AC@@@AB@@C  , (!A@	!@ @A@@A  , (! Nkl Wm*m1@A	7C.generate_lib_api_c.print_trace_enter.print_args.(fun)A@!!@@  , (" 8hUh[ Mkk@@@]@ +BOܐ@"
@kA@@A@HB@@AE@@BD@@DC@@AC@A@  , (" 8hUhf Mkk@AA@""@@  , (""@@@"A@  , (p"% Lkk Lkk@@'A!i@@^@ +@ 9hhht 9hhhu@@"5K#arg+^@ +@ 9hhhv 9hhhy@@">L"9@A@@B@@AB@!B@@A@B@  , (T"G Kkk"@@HA!"DB@  , (L"K IkYk IkYk@d@@_@ ,QB-!n@@ @ ,
d@ +@ IkYkk IkYkl@@"aWZ"]@%@A#@DC@@AB'@D@  , (4"l!@kA"hD@  , ("o!Hkk-!HkkX@$rCN!n@@ @ +c@ +@!Gjk !Gjk@@"V["~@F@AD@DC@@ABH@D@  , '"@A"D@  , '"!/=hi!0=hi(@EBp!n@@ @ +b@ +@!?<hh!@<hh@@"N%count@@ @ +b@ +@!K<hh!L<hh@@"O]"@t@ADC@@w@ABv@D@  , '"+@A&"D@  , '"!]@isi!^@isi@sD!n@@ @ +b@ +@!n>i)i?!o>i)i@@@"P%count@@ @ +b@ +@!z>i)iB!{>i)iG@@"Q^
_"ܰ@@AEC@@@F&D@@ABC@F@  , 'p"2@A-)"F@  , 'D"!Fjj!Fjj@BҠ#len@@ @ +@!Fjj!Fjj@@#U"@@A@C@@AB@C@  , ',#@
A#C@  , '#
!DjRjo!DjRjx@B!n@@ @ +@!DjRjf!DjRjg@@#S#@@A@C@@AB@C@  , &#$@#A#C@  , &#&!Cjj!!Cjj-@)B#&B@  , &#-@,A#(B@  , &#/!Bii!Bij@2B
!n~@@ @ +@!Bii!Bii@@#?R#:@@A @C@@AB@C@  , &#F@EA#AC@  , &#H!Aii!Aii@KA%#HB@  , &|#O@NA'#JB@  , &l#Q!;hh!;hh@TB/!n!S@@ @ +@!;hh!;hh@@#aM#\@$@A"@C@@AB#@C@  , &T#h@gA#cC@  , &8#j"	Ejyj"
Ejyj@mBI!nX@@ @ +d@ +@"Ejyj"Ejyj@@#}T\#y@A@A?@DC@@ABC@D@  , & #@A#D@  , %#"*:h}hf@@@e#OB@  , %#".Vmm""/Vmm)@@A!i@@]@ 0g]@ /@"<Oll"=Oll@@#X&optarg@"COll"DOll@@#Y#@B@@AA@@B@C@@B@@AB@B@  , %\#"RUll$@@A##
B@  , %L#"VSll"WSll@@@^@ /B.!n@@ @ /@"eSll"fSll@@#[#Ű@"@AC@@#@AB"@C@  , %4#@A#C@  , %#Ӱ"rRl]lk"sRl]l@֐BG&cbname!@@ @ /@"~Ql9lQ"Ql9lW@@#Z#ް@C@@D@@AB?@?@AC>@D@  , % #@A#
D@  , $#"Pll&`@@@_#IB@  , $#"bmn"bmn"@@A;!n9@@ @ 1b@ 1
@"]mm"]mm@@$\Y$ @CB@@AfA@@B@@CC  , $$"gno"gno
@I@@\@ 1B]$@@A@@A@  , $$@Aa$A  , $x$!"fnn"fnn@@Ag$
A  , $$'A@j$"
A  , #$*"^ ^$"^ ^,@ C@@[@ 7	"C.generate_lib_api_c.print_wrapperA	g$name<	W@")D!D:")D!D>@@$E $args=_"Q@@ @ @@ @ @")D!DA")D!DE@@$S 'optargs>2">@@ @ @@ @ @")D!DG")D!DN@@$a #ret?"@@ @ @#)D!DP#)D!DS@@$k 0permitted_states@J@@ @ @@ @ @#)D!DU#)D!De@@$z )is_lockedA$boolE@@ @ @#"*DgD##*DgD@@$ -may_set_errorB
@@ @ @#-*DgD#.*DgD@@$ .need_out_labelG "_@@ @ 
\@ 
@@ @ 
\@ 
@#?MJJ#@MJJ'@@$ *ret_c_typeH#@@ @ 
\@ 
@#KOJ8J@#LOJ8JJ@@$ 'errcodeI"#@@ @ 
@@ @ 
\@ 
@#[OJ8Ja#\OJ8Jh@@$1print_flags_checkQ@!h@@ @ \@ k@#%flags@@ @ v\@ q@#"
+@@ @ 
\@ @@ @ \@ @@ @ \@ $unitF@@ @ \@ @ @ \@ r@ @ s\@ l@ @ m\@ j@#OP#OP@@$$@B@@AH@@TL@@AD@@BCC@@I@@xJ@@ABDG@@gA@@AE@@SM@@AF@@rK@@ABCE@#_H@@A|K@@B"J@@#BI@@AC@
#C@@A	F@@
F@@@ABM@  , #%&#^^
#^^@!?@@[@ A%)5M@  , #%0
#^.^9@@A%-9M@  , #%4#]]#]]@ @@[@ \@ A%9EM@  , #%@#]]#]]@!Y@@\@ A%COM@  , #%J#]\]b#]\]@!c@@\@ o A%MYM@  , #%T#]D]Z#]^@@&A$%R^M@  , #t%Y#\\#]5]B@#@@[@ /B.%\hM@  , #d%c$\\$]5]:@A	(C.generate_lib_api_c.print_wrapper.(fun)A@%b%a@@  , #P%i$\\$	\\@#@@[@ X?B>%lxM@  , #@%s$\\)$\\@AA@%q%p@@  , #,%x$[[$[[@!@@[@ )NAM%{M@  , #%$![[$"[[@
?UCT%M@  , "%Y@@YAW%M@  , "%$+[[$,[[@!>@@[@ \@ dAc%M@  , "%@gAe%M@  , "%$9[c[g$:[c[n@!@@[@ pAo%M@  , "%$C[U[Y$D[U[a@!@@[@ zAy%M@  , "%$MZZ$N[([S@$@@[@ RH%M@  , "L%$WZZ$XZZ@!@@[@ B%M@  , "0%°$aZZ$bZZ@$@@[@ B%M@  , " %̰$kZZ&$lZZ@AiA@%%@@  , "%Ѱ$pSS$qZZ@$$@@[@ B%M@  , !%۰$zSS${ZZ@AxA@%%@@  , !%@@A%M@  , !%$OP$SbS~AA	4C.generate_lib_api_c.print_wrapper.print_flags_checkA@%%@@  , !%$OP@@A%@BCEL@  , !%${OO${OO@"
@@\@ 1ǐAƠ%valueO%,@@ @ ]@ @$tNN$tNN@@&&
@@A@M@@ABCEM@  , !&$zOO$zOO@"(@@\@ A&M@  , !&$yObOh$yObO@"2@@\@ B(&M@  , !l&#$xO=OC$xO=O`@"<@@\@ A2&&%M@  , !T&-$wO	O$wO	O;@"F@@\@ 2B<&0/M@  , !<&7
$|OO@@A@&43M@  , !4&;$vNN$vNO@@B&;UL@  , !&B@A&=WL@  , !&D$uNN$uNN@@A%valueP%x@@ @ @$uNN$uNN@@&R&MYJIF@D@AB@M@@ABCEC;M@  ,  &[$sNN$}OO@@-A*&YsL@  ,  &`$iMkMo% pN8NB@$@@[@ 86B4&c}L@  ,  &j%	iMkMy%
pN8N=@AA@&h&g@@  ,  &o%fMM#%fMM*@"@@[@ 	EAC&rL@  ,  &y%eLL%eLM@ULDJ&yL@  ,  p&P@@PAM&|L@  ,  p&%"dLL%#dLL@"5@@[@ 
\@ 
[AY&L@  ,  X&@^A[&L@  ,  H&%0cLLb@@bA_&L@  ,  H&%4`LJLP%5`LJL@"@@[@ 
e\@ 
mAk&L@  ,  0&@pAm&L@  ,  (&%B]L,L2%C]L,L9@vAt&L@  ,  &%I\KK%J\KL*@"@@\@ 
B~&L@  , &%S[KK%T^L;L@@@A&L@  , &%XZKK%YZKK@"@@[@ A&L@  , &ð%bYKK%cYKK@"@@[@ A&L@  , &Ͱ%lXKkKo%mXKkK@"@@[@ dB&L@  , &װ
@@A&L@  , &ڰ%yWKSKY%zWKSKi@"@@[@ [\@ 1A&L@  , &@A&L@  , l&%UK"K&%UK"K.@#@@[@ A&L@  , T&%TKK%TKK @#@@[@ ȐA&L@  , <&%RJJ%SKK@%U@@[@ ҐH&L@  , '%QJJ%QJJ@#@@[@ BܐB'	#L@  , '%PJJ%PJJ@#)@@[@ 
B'-L@  , '
@@A'0LA  , '%OJ8Jk%OJ8J}@AA'*'@$@AB#"C;D
K
  , '+%OJ8JM%OJ8J\@A'+--)(%@"@ABCDJ@  , '7%OJ8J<@@A'4	J@  , ';%MJJ*%MJJ3@A
A@'9'8@@  , '@%MJJ@@A'=?@@@A=;B8CD1)I@  , 'I%JIJ%JIJ@"@@[@ 
\@ 
!A,or_nl_indentC&@@ @ ]@ @%1EE%1EE@@'a %testsD J&@@ @ ]@ @@ @ ]@ @&2EE&2EE@@'s 'nOp1m@$J@@ABl@l@Ah@K@@ABCDg_K@  , l'&III&III@#@@\@ 
UA4'K@  , T'&(HII&)HII@#@@\@ 
M_A>'K@  , <'&2GII&3GII@#@@\@ 
iAH'(K@  , $'&<FII&=FII@#@@\@ 	sAR'2K@  , '&FEII&GEII@#@@\@ 	}A\'<K@  , '&PDI9I?&QDI9I@@@\@ 	XBf'FK@  , '&ZDI9IL
@AWA@''@@  , '&^CII!&_CII7@#@@\@ 	)At'TK@  , 'ɰ&hBHH&iBHI@#@@\@ A~'^K@  , 'Ӱ&rAHH&sAHH@#@@\@ A'hK@  , 'ݰ&|@H0H6&}@H0H@#@@\@ kA'rK@  , h'&?GG&?GH.@$ @@\@ B'|K@  , P'&?GH
@$@@]@ A^@ XȐB'K@  , <'@@A'KA  , 8(&3EE&>GG@AӐB( @BCDJ  , ((&3EE&>GG@AA@(
(	@@  , (&2EE@@A(J@  , (&0EyE&0EyE@$.@@\@ A(I@  , (&/E:E@&/E:Ew@$8@@\@ bA("I@  , ()&.E*E0&.E*E8@$B@@\@ 0A(,I@  , (3&-DD&-DE(@$L@@\@ 	B(6I@  , (=&,DD&,DD@$V@@\@ A(@I@  , (G&+DD&KJ	J@@A(EI@  , (L&+DD@@A(IIA  , 0(R&)D!D9#AA#@
}(O@I@A@8A  ,  (Y&=GG&=GG@@A(W@ EA@@A@
B@@A@AF  , (f'<G\Gr'<G\G@@A(d
A  , (l':GG';G#G[@@@_@ `@ B"(qA@  , (x'9FF@@A&(uA  , (}'7FpF'7FpF@@A,({$A  , ('"6F+FE'#6F+Fo@@ A2(*A$  , ('(5EF')5EF*@@&A8(0A*  , (A)@;(3A-  , h('1DI9I_'2DI9I@%7@@_@ 	`@ 	5BI(@ FA@@A@#B@@A9C@@B@A@  , X('EDI9IW@@B@U(A@  , 4('ImMM'JmMM@$@@^@ VKA!nJ@@ @ G_@ B@']kMM'^kMM@@(%countK@@ @ H_@ C@'ikMM'jkMM@@(W
X(˰@DB@@A
E$C@@!6NA@@AB@@E@  , $(6'nMN'@@|A0, (EB  , ('oN(N5'oN(N7@@A(@@A@@A	  , (A@(A  , ('SPSV'SPS`@%@@\@ AC!@!nSB@&'OP@@)+flag_prefixTd@@ @ w@'OP'OP&@@)%guardU&optionJ'@@ @ |@@ @ {@'OP/'OP4@@)(	%flagsVut@@ @ s@@ @ @ @ @@ @ @'OP('OP-@@)=
&subsetWe@'OP7'OP=@@)D%valueX(v@@ @ ]@ @'P@PJ'P@PO@@)P$maskZ(@@ @ ]@ @'PP'PP@@)\%guard`@@ @ ]@ @(QQ(QQ@@)i)d@bF@@AGD@@BI\E@@&H@@AqC@@B!bB@@>A@@9G@@ABCD@C@@B@@AB@I@  , l)("S4S:(#S4SN@%@@\@ aA)"I@  , T)(,SS(-SS2@%@@\@ B),I@  , 8)(6RR(7RS@%@@\@ C)6I@  , )(@RR(ARR@%@@\@ QA)@I@  ,  )(JRVR\(KRVR@%@@\@ ̐D)JI@  , )
@@A)MI@  , )(WR>RP(XR>RR@@A)RLKD@@H@  , )(^RR((_RR=@bݐBɠ%valuea@@ @ @(jRR(kRR$@@))ʰf`_[@Y@IZ@ABCDY@I@  , )@A)	I@  , )ڰ(yQQ@@A)!H@  , )ް(}QQ(~QQ@B)ްzt@q@ApnCDj@G@  , h)(QQ@@@^@ i_@ qB)G@  , L)@A)G@  , 4)(PP(PP@@A)@&subset[HBCD@H@  , $*(QQ(QQ@^@ #B-\@ @(PP(PP@@*!v\")D@@ @ _@ @@ @ _@ @(PQ	(PQ
@@*$*A@,@AI@@@ABCD@I@  , *-(QQ!(QQ@(@@^@ NB+*0I@  , *7(QQ+(QQ@A	:C.generate_lib_api_c.print_wrapper.print_flags_check.(fun)A@*6*5@@  , *=9@@XA4*9I@  , *@(PQ
(PQ@A]A@*>*=@@  , *E(PQB@@aA<*BNH@  , *I(PPf@@eAN*FhG@  , *M(PP(PP@kBT*Mo@@ABC@F@  , *X@rAZ*SF@  , *Z(PeP}(PeP@@wA`%valueY)@@ @ @)PePt)PePy@@*h
*c@@G@@ABCD@G@  , p*p)P@PF@@At*m FA  , T*vA@s*q@@A$B@C  , (*|)QKQw)QKQ@@EAw$flag]_@ @)$Q-Q?)%Q-QC@@*!i^F@@_@ _@ @)0Q-QE)1Q-QF@@**@C@@AB@@"_A@@AB@B@@AC@@B@C@  ,  *)BQKQ])CQKQq@(7@@`@ `@ rB.*C@  , *)NQKQZ3@@wA2*CA  , *~A{@*@@A@A  , *)YYY)ZYY@&@@^@ [A!ni @@ @ &e@ @)lWW)mWW@@* %valuew*@@ @ _@ @)xXX)yXX@@*!V*ٰ@CB@@A#?yA@@D@@AB@<C@@A[B@@/D@@AB@D@  , *)YY)YY@'
@@^@ A73*D@  , *)YY)YY@'@@^@ BB(>+ 'D@  , +)Y8YA)Y8Y@' @@^@ 0BM3I+2D@  , |+)YY)YY6@'+@@^@ BX>T+=D@  , d+)YY@@A]CY+BD@  , \+")XY)XY
@PBdKa+#JE@BA@C@  , D+,
@AiPf+(C@  , 4+/)XX)XX@@Ap%valuex*d@@ @ @)XX)XX@@+>"aw+9`[@D@@ABY@D@  ,  +D)XX(@@Aj+BCE  , +K)WW)WW@@A!ng@@ @ @)WW)WW@@+Z%flagsh@@ @ @)WW* WW@@+d+_@B@@AC@@@AB@C#  , +m*WtW}*
WtW@'@@^@ jAF!nd@@ @ @*U:UH*U:UI@@++enum_prefixev@@ @ @*(U:UM*)U:UX@@+%enumsfut@@ @ s@@ @ @ @ @@ @ @*=U:UZ*>U:U_@@+%values*@@ @ _@ @*IUfUs*JUfUx@@++@#B@@2D@@AB)C@@@E@@A@F@@ABC@F@  , +*\WUW^*]WUWr@'@@^@ 8^AP+F@  , +ǰ*fW0W9*gW0WS@'@@^@ hBZ+!F@  , +Ѱ*pVW*qVW.@'@@^@ rCd++F@  , d+۰*zVV*{VV@'@@^@ &|An+5F@  , L+*VV*VV@'@@^@ Ax+?F@  , 4+*VtV}*VtV@(@@^@ A+IF@  , +*UV *VbVr@*L@@^@ >B+SF@  , ,*UV
*VbVl@AA@,, @@  , ,*UU*UU@(!@@^@ B,bF@  , ,
*WW@@A,fF@  , ,*UU*UU@sB,mhg9@BC5@E@  , , 
@A,E@  , ,"*UU*UU@@A%valuet+V@@ @ @*UU*UU@@,0,+}|N@F@@ABCL@F@  , ,7*UfUo&@@A,4E  , d,<*UU*UU@(U@@^@ ݐA&cbnamec*'@@ @ @*SS*SS@@,P%valueq+@@ @ K_@ 1@*SS*SS@@,\,W@$5B@@AC@@~@D@@ABC|@D@  , L,g+TT+TU@(@@^@ \A+,jD@  , 4,q+TT+TT@(@@^@ B5,tD@  , ,{+TqTz+TqT@(@@^@ B?,~'D@  , ,+$T1T:+%T1To@(@@^@ ^&BI,1D@  , ,
+.UU9@@+AM,5D@  , ,+2TT!+3TT-@B1BS,<9@@AB@C@  , ,
@7AX,C@  , ,+>ST+?ST@@<A^%valuer+@@ @ =@+HSS+IST@@,,QN@@D@@ABC@D@  , ,+SSS&@@PAq,Co  , ,+XYZ	+YYZ@@VA,@@A@Aw  ,  ,A[@,Az  ,  ,İ+cV(V5+dV(Va@@aAS$enumu)l@@_@ _@ E@+oVV+pVV @@,,ϰ@B@@A%2vA@@B@YB@@A@BA  , ,Az@k,۰@
@A@A  , ,+ZuZ~+ZuZ@@A!nz *@@ @ @+ZPZ`+ZPZa@@,#%flags{&@@ @ @+ZPZc+ZPZh@@,$&subset|+@@ @ @@ @ @@ @ @+ZPZj+ZPZp@@-%-@#C@@/D@@AB%t}A@@B@@AC@`B@@A@DB  , -$+Z7ZM+Z7ZO@@A-"@@A@A	  , -,`A@-'A  , -/+\X\a+\X\@@A	 &cbname~+@@ @ e@+\:\L+\:\R@@-=&-8@%B@@AC@@%A@@AB@@CB  , h-J+\\+\\@@A	-H@@A@@A	  , -RA@	-MA  , -U+]]2+]]4@@A	%-S@%A@@A@@AB  , -`+\\, \]@@A	1&cbname+E@@ @ @,	\\,
\\@@-n'-i@%GB@@AC@@@AB@@C  , -xA@	E-s A  , -{,.%%,W*-*0@A9C.print_cbarg_list'.(fun)A@-z-y@@  , -, ,%%,!,%%@)@@Y@ 3C.print_cbarg_list'A-{W+$))@@ @ N@,3*%+%C,4*%+%OA@- )5){Y@ R@,:*%+%H@@- 'noconst)dY@ @,A*%+%Q,B*%+%X@@- &cbargs)8@,H*%+%Y,I*%+%_@@- -@#C@@AA@@B@@D@@ABC@@) @@A)^@@@BD@  , t-;,[W*-*7@@6A4-D@  , t-,_+%b%r,`+%b%}@)r@@Y@ Z@ zAA@-D@  , \-@DAB-D@  , T-ΰ,m+%b%d@@HAF-#D@  , L-Ұ,q*%+%K>@@LAG-ϰ'%@$@AB@!C@  , <-@QAMD)r@
@- -ذ@0@D@@AB1C@,D@  , $-@\@Z-C@  , -,V**#,V**,@@kAa%cbarg)@,/%%,/%%@@- !n+@@ @ L@,T)),T))@@- -@A@@B@@AB@fC@@nB@@AB@B@  , .,U)*
,U)*@)@@[@ \@ A).
B@  , .@A+.B@  , .,U))0@@A/.B@  , .,S)),S))@@A4!n,@@ @ I@,Q)),Q))@@.) .$@,@B@@AB+@B@  , ./,R)),R))@)@@[@ _\@ 5A.4B@  , .;@A.6B@  , .=,R))#@@A".:B@  , `.A,P)|),P)|)@@A[!n,A@@ @ F@,M))%,M))&@@.P .K@S@B@@ABR@B@  , `.V,O)T)m,O)T)z@*@@[@ \@ A.[B@  , H.b@A.]B@  , <.d-O)T)]#@@A".aB@  , <.h-N)*)A-N)*)R@*@@[@ \@ A..m"B@  , $.t@A0.o$B@  , .v-N)*)35@@A4.s(B@  , .z-K((-K((@@A!n#@@ @ ?@-#I((-$I((@@. .@#argB@@A@C@@AB@C@  , .-1J((-2J((@*D@@[@ N\@ $A.C@  , .@ A!.C@  , .-?J((&@@$A%.C@  , .-CL()-DL()@@@Y@ -B!,@@ @ C@-PL() -QL()@@. .-@B@B@  , .@;A
.B@  ,  .-ZH((-[H((@@@Aՠ!n,@@ @ 9@-eF(M(]-fF(M(^@@. .Ű@@B@@AB@B@  ,  .а-oG(b(y-pG(b(@*@@[@ \@ [A.B@  , .@^A.B@  ,  .ް-}G(b(k#@@bA".B@  , .-E(:(C-E(:(L@@gA!n,@@ @ 6@-C((-C((@@. .@@B@@AB@B@  , .-D((/-D((8@*@@[@ t\@ JA.B@  , /@A.B@  , /-D((!#@@A"/B@  , /	-B''-B'(@@A$!n-
@@ @ 2@-='E'X-='E'Y@@/ #len-@@ @ 3@-='E'[-='E'^@@/$ /@(@AB@@C@@AB(@C@  , /,-A''-A''@*@@[@ \@ A*/1C@  , p/8@A,/3C@  , d/:-@''-@''@+S@@[@ ÐB6/=C@  , H/D
:@@A9/@!C@  , H/G-?''-?''@*@@[@ \@ eҐAE/L-C@  , 0/S@AG/N/C@  , $/U-?''L@@AK/R3C@  , $/Y->'c'z->'c'@+@@[@ [\@ 1AW/^?C@  , /e@AY/`AC@  , /g.>'c'l^@@A]/dEC@  , /k.
6&c&l.6&c&w@@A!n$@@ @ @.2%%.2%%@@/z #len-v@@ @  @. 2%%.!2%%@@/ /@'^B@@A@C@@D@@ABC@D@  , /./5&>&U.05&>&a@+B@@[@ \@ A,/D@  , /@A./D@  , /.=4&(&1.>4&(&<@+@@[@ 'B8/!D@  , /
<@@+A;/$D@  , /.J3& &.K3& &&@+]@@[@ \@ d6AG/0D@  , x/@9AI/2D@  , p/.X3& &	N@@=AM/6D@  , </.\;''.];''@@BAؠ!n-@@ @ '@.h7&x&.i7&x&@@/ #lenS@@ @ )@.r7&x&.s7&x&@@/ /ҰR@C@@D@@ABC@D@  , </߰.~:&&.:&'@+@@[@ \@ jA)/D@  , $/@mA+/D@  , /.9&&.9&&@,@@[@ |vB5/D@  , 
/
9@@zA8/!D@  , 
/.8&&.8&&@+@@[@ s\@ IAD/-D@  , 
0@AF0/D@  , 
0.8&&K@@AJ03D@  , 
0.<''8.<''D@hB'0@B@B@  , 
0	@A+0B@  , 
0.0%%.0%%@,0@@Z@ A50@"@A@A@  , 
 0#<@@@:0A@  , 0&.(%%#.(%%)@@2C.print_cbarg_listA0 -ɠ,7@@ @ E@. #$. #$A@0= ,C,>Y@ I@. #$@@0C ,:&optionJ,;@@Y@ Y@ e@. #$. #$%@@0R ,:+Y@ k@. #$'. #$,@@0Y "-,0@@Y@ q@. #$/. #$<A@0c ,<,7Y@ u@/ #$5@@0i 2-,1@@Y@ @/!$>$J/!$>$YA@0s ,=,8Y@ @/!$>$Q@@0y &cbargs,7@/!$>$[/!$>$a@@0 0{@RF.C B@@AA@@BHE@@I@@A-H@@B?D@@VG@@ACD@@,@@@A,;C@@BI@  , 0/8(%%s@@rAq0I@  , 0/<'$$/='$%@,/Y@ yCy0#I@  , 0@|A{0%I@  , 0/F$$$/G%$$@,7C0,I@  , 0/M%$$@A8C.print_cbarg_list.(fun)A@00@@  , t0@A03I@  , h0/T#$}$@@A07I@  , h0/X"$d$u/Y"$d${@,k@@Y@ Z@ A0CI@  , P0@A0EI@  , H0ǰ/f"$d$f@@A0II@  , @0˰/j!$>$T\@@A0ȰME@B@AA@BC@>H@  , 00@A>,@@0 0Ұ@W@AI@@T@ABSC@JI@  , 0@A0H@  , 0/ #$8@@A0ްb\@]@AWVBC@TG@  , 0@AT,@@0 0@l@H@@ABi
C@_H@  , 0-@A0G@  , 0/ #$@@A0wqk@BC@hF@  , 0@A̠h,@
@1 0@@G@@AB}C@sG@  , 1A@@1F@  , 1
/%$$/%$$@@]@1@)iA@@A@E@@AD@@,B@@AC@@BC@A@  , 1/ / TW@A7C.print_arg_list'.(fun)A@11@@  , `1!/ 	/ @/t@@Y@ V1C.print_arg_list'B1%.ɠ.=@@ @ o@/ #9/ #GA@1= M.I&.Y@ s@/ #?@@1C N(.٠.B@@Y@ Ώ@/ #K/ #WA@1M P.N).Y@ Γ@/ #P@@1S Q+..G@@Y@ ί@/ #[/ #qA@1] S.S,.Y@ γ@/ #h@@1c T$args..Q@0 s}0 s@@1j V'optargs/.U@0 s0
 s@@1q W%comma0)/>@@ @ Z@ @@ @ Z@ @0 0 @@1 X1~@UEGD9C@@A*B@@2H@@ I@@ABCUF@@*A@@IG@@ABD@@/8 @@A.@@@BI@  , P10; 	0< @AA@11@@  , 410@ T_@@{Ay1 I@  , 410D 0E @-W@@Y@ PZ@ &A1,I@  , 1@A1.I@  , 10R 0S @-e@@Z@ [@ A1:I@  , 1@A1<I@  , 
10` @@A1@I@  , 
1Ű0d 0e @@A1EI@  , 
1ʰ0i *@@A1II@  , 
1ΰ0m 0n @AA@11@@  , 
1Ӱ0r 3@@A1аRL@K@ABHGC@CH@  , 
1۰0z #k@@A1ذYS@P@ANMBC@KG@  , 
1@AN-.@@1 U1@c@H@@AB`
C@VH@  , 
1@A1G@  , 
10 #S@@A1nhb@BC@_F@  , 
1@AȠb*.@
@1 R1@w@G@@ABtC@jG@  , 
2/@A1F@  , 
x20 #B@@A2|@v@AB@sE@  , 
h2@Aڠv'/@
@2 O2
@@F@@ABC@~F@  , 
P2C@@2E@  , 
$20 ;D0 ;M@@A#arg1/P@0 0 "@@2% Y!nC'N@@ @ ]@ @0 0 @@21 gi2-@A@@CB@@AB@C@@AD@@B@@AB@C@  , 
$2B0 (0 9@-@@\@ p]@ F-A1&2HC@  , 
2O
@1A4)2KC@  , 
2R0 :@@6A9$.2P#C@  , 	2W0 DM0 DV@@<A?!n?&@@ @ ]@ @1 
1 
@@2h dj2d@7@CB@@AB6@C@  , 	2r1 "91 "B@.$@@\@ )]@ ]A"2xC@  , 	2
@aA%"2{C@  , 	21! "++@@fA*'2C@  , 	21& 	1' 	@@lAq!n7&@@ @ ]@ Ͻ@15 l~16 l@@2 ]#len8&@@ @ ]@ Ͼ@1A l1B l@@2 ^k
l2@w@ADB@@E%C@@ABz@E@  , 	21U 1V @.h@@\@ ]@ A62&2E@  , 	l2@A: 6*2E@  , 	`2Ȱ1g 1h @.@@\@ ѭBF,B+62*E@  , 	D2԰L@@AK1G0;2/E@  , 	D2ٰ1x 1y @.@@\@ Ѥ]@ zĐAY?U>I2=E@  , 	,2@A]CYBM2AE@  , 	$21 d@@AcI_HS2GE@  , 21 W`1 Wk@@A۠!n3&@@ @ ϶]@ ϱ@1 1 @@3 [#len4&@@ @ Ϸ]@ ϲ@1 1 @@3 \m
n3
@@ADB@@E%C@@AB@E@  , 3 1 2I1 2U@.@@\@ 7]@ 
A62&3'E@  , 3.@A: 6*3+E@  , 321 %1 0@/K@@\@ BF,B+637*E@  , 3>L@@!AK1G0;3</E@  , 3C1 	1 @.@@\@ п]@ Е.AY?U>I3J=E@  , 3Q@3A]CYBM3NAE@  , 3U1 d@@9AcI_HS3TGE@  , L3[1 nw1 n@@@AB!nK)@@ @ 	@2 1A2 1B@@3i n3d@7@B@@AB3@B@  , L3o2 F]2 Fl@/!@@\@ v]@ LZA3tB@  , 43{@]A3vB@  , ,3}2 FO"@@aA!3zB@  ,  32  '2! 0@@fAh!nJ)@@ @ @2* 2+ @@3 m3@]@B@@ABY@B@  ,  324 25 @/G@@\@ 	]@ A3B@  , 3@A3B@  , 32B  "@@A!3B@  , 32F 2G @@A!nI)@@ @ @2P 2Q @@3 l3@@B@@AB@B@  , 32Z 2[ @/m@@\@ ל]@ rA3B@  , 3@A3B@  , 3ɰ2h "@@A!3B@  , h3Ͱ2l 2m @@A!nH)(@@ @  @2v IV2w IW@@3 k3ְ@@B@@AB@B@  , h32 [r2 [@/@@\@ /]@ ̐A3B@  , P3@A3B@  , H32 [d"@@A!3B@  , 32 2 @@Aڠ!nE)6@@ @ @2 Na2 Nb@@4 h3@@B@@AB@B@  , 42 f}2 f@/@@\@ ]@ ճA4B@  , 4@A4B@  , 42 fo"@@A!4B@  , 42 4=2 4H@@A!nF)(@@ @ @2 2 @@4( i#lenG)'@@ @ @2 2 @@42 j4-@@AB@@C@@AB@C@  , 4:2 #2 2@/@@\@ ]@ ֘%A(4?C@  , 4F@(A*4AC@  , 4H2 2 
@0a@@\@ S1B44KC@  , 4R
8@@5A74N!C@  , 4U2 2 @0@@\@ J]@  @AC4Z-C@  , x4a@CAE4\/C@  , p4c3 J@@GAI4`3C@  , <4g3 3 @@LAN!nB)P@@ @ @3 3 @@4u f4p@C@B@@AB?@B@  , <4{3 3 @0-@@\@ ]@ fA4B@  , $4@iA4B@  , 43( "@@mA!4B@  , 43, 3- @@rAt!nA)F@@ @ @36 We37 Wf@@4 e4@i@B@@ABe@B@  , 43@ j3A j@0S@@\@ Ԗ]@ lA4B@  , 4@A4B@  , 43N js"@@A!4B@  , 43R  3S 	@@A!n>)<@@ @ @3\ 3] @@4 c4@@B@@AB@B@  , 4ǰ3f 3g @0y@@\@ Ӽ]@ ӒA4B@  , 4@A4B@  , 4հ3t "@@A!4B@  , t4ٰ3x q3y q@@@Z@ ZB4ܰ@@A@A@  , \4@A4A@  , <43 ^g3 ^p@@AΠ!n=)4@@ @ @3 %33 %4@@4 b4@@B@@AB@B@  , <43 <S3 <\@0@@\@ L]@ "A5 B@  , $5@A5B@  , 5	3 <E"@@A!5B@  , 5
3 3 $@@A&cbname;2@@ @ @3 03 6@@5 _&cbargs<$0@@ @ @@ @ @3 83 >@@5+ `$markL4]@@ @ Ҹ]@ ҧ@3 y3 y@@57 a52@-B@@A@+C@@D@@ABC@D@  , 5B3 3 @@'A45@@@AB@C@  , 5J3 3 @@/A<5HC@  , 5O3 3 @@4AA5M
C@  , 5T3 yG@@8AE5QC@  , 5X3 D[3 Dw@1
@@\@ ҥ]@ _CBQ5]C@  , 5d@FAS5_C@  , 5f4 DMY@@JAW5c#C@  , L5j4	 4
 @@OAQ!n23j@@ @ ϭ@4 n{4 n|@@5x Z5s@F@B@@ABB@B@  , L5~4 4 @10@@\@ R]@ (iA5B@  , 45@lA5B@  , ,54+ "@@pA!5B@  , 54/ Y_5@@tAu5A@  , 543 DJ9@@xAy5A@  , 547 &;48 &B@1J@@[@ Ϛ\@ pA5A@  , 5@A5A@  , 54E &,K@@@5A@  , h54I AJ4J AS@@A&optargM2@4Q 4R @@5 o!nP(@@ @ ٴ@4[ 4\ @@5 s5@B@@AA@@B@kC@@AXD@@~B@@AB@B@  , h5Ͱ4l 14m ?@1@@[@ ڳ\@ ډA*5B@  , P5@A,5B@  , H5۰4z #1@@A05B@  , 5߰4~ 4 @@A7&cbnameN3@@ @ ٥@4 	4 @@5 p&cbargsO$1@@ @ ٫@@ @ ٪@4 4 @@5 q$markQ5/@@ @ \@ @4 R_4 Rc@@6	 r6@-B@@A*C@@D@@AN@BCM@D@  , 64 4 @@A46@V@ABU@C@  , 64 4 @@A<6C@  , 6!4 4 @@AA6
C@  , 6&4 R[G@@
AE6#C@  , 6*4 44 P@1@@[@ \@ BQ6/C@  , 66@AS61C@  , 684 &Y@@AW65#C@  , 6<4 @@ A69@|@A{@A@  , t6B4 @@&A6?A@  , t6F4 4 @1@@Z@ َ[@ d1A6KA@  , \6R@4A6MA@  , L6T4 @@8@6QA@  , 06X4 4 @2@@Z@ 7[@ M0C.print_arg_listA6W744@@ @ ̑@5 5 A@6x44
Y@ ̕@5 @@6~ @4;4@@Y@ ͛Y@ ̱@5% 5& @@6 B33Y@ ̷@5, 5- @@6 C33Y@ ̽@53 54 @@6 Da4.3@@Y@ @5= 5> &A@6 E33Y@ @5D @@6 F33Y@ @5J )5K 6@@6 H$args 3@5Q 75R ;@@6 I'optargs!3@5X <5Y C@@6 J&indent$5)@@ @ @5b 5c @@6 L6°@^H6D@@A B@@B(C@@JF@@AK@@YG@@AB"A@@9J@@AKE@@fI@@ABCD@@4@@@A3C@@BK@  ,  65 @@A6K@  , 65 5 @@A6$@@@ABCD@J@  , 65 5 @@A6
J@  , 65 5 !@@A6J@  , 65 UY5 U@3Y@ ͯE6J@  , 7@A6J@  , 75 5 M@3C7 J@  , p7
5 @A6C.print_arg_list.(fun)A@77
@@  , 87@A7
'J@  , ,75 @@A7+J@  , $75 5 @5q@@Y@ B&indent"5@@ @ @5 5 @@7+ K7&d^@]@AK@@\@AB[ZCD@TK@  , 745 @3@@[@ j\@ vېA78K@  ,  7?'@A7:K@  ,  7A5 [l5 [n@@A7?YJ@  ,  7F5 o5 o@.A7F`J@  ,  7M@A7HbJ@  ,  7O5 FHX@@A7LfJ@  ,  7S5 @@A7Pj@~}BCD@{I@  ,  7[@A4@@7_ G7Z@@AJ@@@ABD@J@  ,  x7g@A7bI@  ,  p7i6 @@
A7f@@ACD@H@  ,  `7q@A5@@7u A7p@@AI@@@ABD@I@  ,  H7}.@@7xH@  , H76 6 L@@s@7}@/#A@@A@F@@AE@@C@@ABG@@4B@@AD@@BC@A@@         
   5/tmp/libnbd/generator@    ,  v    ( !CPW젠@Lh@@!($C.ml o oA@@ %Utils Ƞ @K"(
  A@B@@@@$(
%s@@!$@Li@@!); < A@@𠠑:=$@LJB@Li@@@@$
%s)^ _ 
A@@4]<@K", n o A@@@", 
@@`th@K$nbd_ 7 IA@B@K*_callback @@@@@0nbd_%s_callback @@Ġ  @@젠!&  @@!*  @@@B@B@K)_callback  A@@@@@-%s%s_callback
@@$,@K)uint32_t  4 ?A@@@)uint32_t 
@@T\@B@@@"%s AM  AQA@@px@K",  &> &BA@@@", 
@@@K%bool & ' A@@@%bool 
@@8,@@B@@@"%sC D A@@TB\@K$nbd_S D^T DpA@B@K*_callback @@@@@0nbd_%s_callback @@d q @@!&y z @@Р!*  @@ࠠ@B@B@K)_callback 	 A@@@@@-%s%s_callback
@@ @K$int  <V <\A@@@$int 
@@(0@B@@@"%s ^j ^nA@@DL@ذ q q@@ ĠV@`.Assert_failure\h@K)uint32_t   A@@@)uint32_t 
@@@B@@@"%s  A@@@K(int64_t  j  jA@@@(int64_t 
@@ܠ%䠠@B@@@"%s< = A@@; @K'size_t L M A@@@'size_t 
@@(R0@B@@@"%si j A@@DhL@K7const struct sockaddr *y z A@@@7const struct sockaddr *
@@|@B@K",   A@@@@$%s, 
@@@K*socklen_t  & 2A@@@*socklen_t 
@@Ġ@B@@@"%s 4@ 4DA@@ؠࠠ@K'char ** f fA@@@'char **
@@@B@@@"%s  A@@$,@K)unsigned  [u [A@@@)unsigned 
@@T\@B@@@"%s# $ A@@p"x@K)uint32_t 3 4 A@@@)uint32_t 
@@9@B@@@"%sP Q A@@OĠ@K)uint64_t ` a A@@@)uint64_t 
@@젠f@B@@@"%s} *~ .A@@|@K*uintptr_t  F` FlA@@@*uintptr_t 
@@8@@B@@@"%s nz n~A@@T\@K,const void *  A@@@,const void *
@@@B@K",  ( .A@@@@$%s, 
@@@K'size_t  2L 2UA@@@'size_t 
@@Ԡܠ@B@@@"%s
 Wc WgA@@𠠑	@K&void *  A@@@&void *
@@	0 	8@B@K", 6 7 A@@@@$%s, 
@@	L<	T@K'size_t M N A@@@'size_t 
@@	pS	x@B@@@"%sj 	k 	A@@	i	@K$int z "<{ "BA@@@$int 
@@		Ƞ@B@@@"%s DP DTA@@	ܠ	䠠@K,const char * + 9A@@@,const char *
@@

@B@@@"%s ;G ;KA@@
,
4@K3struct nbd_handle *  A@@@3struct nbd_handle *
@@@L h@@!h   A@@ (,Stdlib__ListT@Lh@@!("$d$x"$d${A@@T\@Li@@!)((%%&)(%%)A@@ࠠ'蠠@K", 80%%90%%A@@@", 
@@
>
@JL<''8M<''D@@<[@
r
@K,nbd_extent *b8&&c8&&A@@@,nbd_extent *
@@
蠠h
𠠐@B@K", ~9&&9&&A@@@@$%s, 
@@@K'size_t :&&:&'A@@@'size_t 
@@(0@B@@@"%s;'';''A@@DL@K*uint32_t *3& &3& &&A@@@*uint32_t *
@@|@B@K", 4&(&44&(&:A@@@@$%s, 
@@@K'size_t 5&>&X5&>&aA@@@'size_t 
@@Ġ@B@@@"%s6&c&o6&c&sA@@ؠࠠ@K,const void *">'c'}#>'c'A@@@,const void *
@@(@K((void *)9?'':?''A@@@((void *)
@@4?<@B@K", U@''V@''A@@@@$%s, 
@@P[X@K'size_t lA''mA''A@@@'size_t 
@@tr|@B@@@"%sB''B'( A@@@K$int D((2D((8A@@@$int 
@@Ƞ@B@@@"%sE(:(FE(:(JA@@ܠ䠠@K(int64_t G(b(|G(b(A@@@(int64_t 
@@@B@@@"%sH((H((A@@(0@L()L()@@LY@@K%int *J((J((A@@@%int *
@@ܠ䠠@B@@@"%s#K(($K((A@@" @K,const char *3N)*)D4N)*)RA@@@,const char *
@@(90@K((char *)JO)T)pKO)T)zA@@@((char *)
@@LPT@B@@@"%sgP)|)hP)|)A@@hfp@K)unsigned wR))xR))A@@@)unsigned 
@@}@B@@@"%sS))S))A@@@K)uint64_t U)*
U)*A@@@)uint64_t 
@@䠠젠@B@@@"%sV**&V***A@@ @K&void *+%b%u+%b%}A@@@&void *
@@`h@K)user_data,%%,%%A@@@)user_data
@@x@K1  FREE_CALLBACK (\\\]A@B@K,_callback);
@@@@@?  FREE_CALLBACK (%s_callback);
@@䠠젠@K1  FREE_CALLBACK ($\X\d%\X\A@B@K,_callback);
@@@@@?  FREE_CALLBACK (%s_callback);
@@5@K.  case LIBNBD_FV(V8GV(VPA@B@L _B@K":
@@@@@@@5  case LIBNBD_%s_%s:
@@a@moTT!pTT-@@U@ȠР@K8  if (CALLBACK_IS_NULL (T1T=T1ThA@B@K._callback)) {
@@@@@	(  if (CALLBACK_IS_NULL (%s_callback)) {
@@蠠𠠐@K8    set_error (EFAULT, "TqT}TqTA@LeK4s cannot be NULL", "@B@K$");
@@@@@@@	4    set_error (EFAULT, "%%s cannot be NULL", "%s");
 @@@K*    ret = TTTTA@B@K";
@@@@@.    ret = %s;
@@ (@K.    goto out;
TTTUA@@@.    goto out;

@@8@@K$  }
	
UU	UUA@@@$  }

@@P	X@		!UU	"UU@@U@ĠG̠@K*  switch (	7UU	8UUA@B@K$) {
@@@@@0  switch (%s) {
@@䠠	H젠X@K+    break;
	\VtV	]VtVA@@@+    break;

@@ 	b(@K+  default:
	sVV	tVVA@@@+  default:

@@8	y@@K8    set_error (EINVAL, "	VV	VVA@LeK	 s: invalid value for parameter: @LeK$d",
@@@@@@@	@    set_error (EINVAL, "%%s: invalid value for parameter: %%d",
 @@P	X@K0               "	VW	VW*A@B@K#", @B@K#);
@@@@@@@:               "%s", %s);
 @@p	x@K*    ret = 	W0W<	W0WMA@B@K";
@@@@@.    ret = %s;
@@	@K.    goto out;

WUWa
WUWrA@@@.    goto out;

@@
@K$  }

WtW
WtWA@@@$  }

@@
#Ġ@
/
1XY
2XY
@@U@HWP@K&  if (
GYY
HYY4A@B@K, == NULL) {
@@@@@4  if (%s == NULL) {
@@h
Xp@K8    set_error (EFAULT, "
iY8YD
jY8YA@LeK4s cannot be NULL", "@B@K$");
@@@@@@@	4    set_error (EFAULT, "%%s cannot be NULL", "%s");
 @@
@K*    ret = 
YY
YYA@B@K";
@@@@@.    ret = %s;
@@
@K.    goto out;

YY
YYA@@@.    goto out;

@@
@K$  }

YY
YYA@@@$  }

@@Р
ؠ@

PP
PP@@R@	@K"0x
QQ QQA@DF@@@@@$0x%x@@.Stdlib__Printf!0PP PP@@8%_MASK(QQ)QQ@@P&Stdlib\'LIBNBD_6QQ7QQ@@lt* &&
      BRR)CRR4@@ NR>RQ@@Ġ@K1  if (unlikely ((ZRVR_[RVRA@B@K$ & ~@B@K') != 0)@B@K$) {
$@@@@@@@@@	&  if (unlikely ((%s & ~%s) != 0)%s) {
+@@蠠𠠐@K8    set_error (EINVAL, "RRRRA@LeK=s: invalid value for flag: 0x@LeK$x",
@@@@@@@	=    set_error (EINVAL, "%%s: invalid value for flag: 0x%%x",
 @@@K0               "RRRSA@B@K#", @B@K#);
@@@@@@@:               "%s", %s);
 @@$,@K*    ret = SSSS,A@B@K";
@@@@@.    ret = %s;
@@@H@K.    goto out;
S4S=S4SNA@@@.    goto out;

@@X`@K$  }
%SPSY&SPS`A@@@$  }

@@p+x@K;  if (h->pread_initialize)
<mMM=mMMA@@@;  if (h->pread_initialize)

@@ B(@K,    memset (SnMNTnMNA@B@K%, 0, @B@K#);
@@@@@@@8    memset (%s, 0, %s);
 @@@oH@B@@@"%sDI9IZDI9I^A@@lt	%nbd_internal_is_state_created (state)5EF5EF)@@	(nbd_internal_is_state_connecting (state)6F+FF6F+Fn@@	)nbd_internal_is_state_negotiating (state)7FpF7FpF@@̠	(nbd_internal_is_state_processing (state);G#G2;G#GZ@@ܠ蠠	#nbd_internal_is_state_ready (state)9FF9FG@@ 	$nbd_internal_is_state_closed (state)<G\Gs<G\G@@	"nbd_internal_is_state_dead (state)=GG=GG@@$@K3static inline bool
,DD,DDA@@@3static inline bool

@@@B@K	+_in_permitted_state (struct nbd_handle *h)
-DD-DE#A@@@@	-%s_in_permitted_state (struct nbd_handle *h)

@@@K"{

.E*E3
.E*E8A@@@"{

@@Ƞ
Р@K	1  const enum state state = get_public_state (h);

%/E:EC
&/E:EwA@@@	1  const enum state state = get_public_state (h);

@@ࠠ
+蠠@LJ@@!

B0EyE
C0EyEA@@
A , ||
        
N1EE
O1EE@@Z,.Stdlib__StringD@K(  if (!(
c?GG
d?GHA@B@K%)) {
@@@@@/  if (!(%s)) {
@@T
t\@K	J    set_error (nbd_internal_is_state_created (state) ? ENOTCONN : EINVAL,

@H0H9
@H0HA@@@	J    set_error (nbd_internal_is_state_created (state) ? ENOTCONN : EINVAL,

@@l
t@K?               "invalid state: 
AHH
AHHA@LeK6s: the handle must be @LeK$s",
@@@@@@@	=               "invalid state: %%s: the handle must be %%s",
 @@
@K	8               nbd_internal_state_short_string (state),

BHH
BHIA@@@	8               nbd_internal_state_short_string (state),

@@
@K0               "
CII$
CII7A@@@0               "
@@

蠠@K$");

EII
EIIA@@@$");

@@  @K2    return false;
FIIFIIA@@@2    return false;

@@@K$  }
(GII)GIIA@@@$  }

@@(.0@K/  return true;
?HII@HIIA@@@/  return true;

@@@EH@K"}
VIIIWIIIA@@@"}

@@X\`@LJ@@!
sJIJtJIJA@@prx@B@LJ@@@#%s
PJJPJJA@@Ƞ@K$nbd_QJJQJJA@B@L`@@@@'nbd_%s @@ܠ䠠@@@@@@A@@A@(@LJ@@!
TKKTKK A@@@H@K"{
UK"K)UK"K.A@@@"{

@@X`@K*  bool p;
WKSK\WKSKiA@@@*  bool p;

@@	@K"  XKkKrXKkKA@B@K& ret;
@@@@@*  %s ret;
@@+@LJ@@!
BYKKCYKKA@@A@K	)  assert (h->magic == NBD_HANDLE_MAGIC);
RZKKSZKKA@@@	)  assert (h->magic == NBD_HANDLE_MAGIC);

@@РXؠ@K	'  nbd_internal_set_error_context ("nbd_i\KKj\KL%A@B@K$");
@@@@@	-  nbd_internal_set_error_context ("nbd_%s");
@@z @LJ@@!
]L,L5]L,L9A@@  @K	/  /* This function must not call set_error. */
`LJLS`LJLA@@@	/  /* This function must not call set_error. */

@@ 4 <@K	!  pthread_mutex_lock (&h->lock);
dLLdLLA@@@	!  pthread_mutex_lock (&h->lock);

@@ \ d@LJ@@!
fMM&fMM*A@@  
 Ԡ@vNNvNO@@vR@! !(@K&  p = wO	OwO	O6A@B@K9_in_permitted_state (h);
@@@@@	!  p = %s_in_permitted_state (h);
@@!@!H@K7  if (unlikely (!p)) {
xO=OFxO=O`A@@@7  if (unlikely (!p)) {

@@!X#!`@K*    ret = 4yObOk5yObO|A@B@K";
@@@@@.    ret = %s;
@@!tE!|@K.    goto out;
VzOOWzOOA@@@.    goto out;

@@!\!@K$  }
m{OOn{OOA@@@$  }

@@!s!" "$@K5  ret = nbd_unlocked_ZZZZA@B@L`@@@@8  ret = nbd_unlocked_%s @@"8"@@A@"h@@@"t@A@"|@A@"@K";
[U[\[U[aA@@@";

@@""@LJ@@!
[c[j[c[nA@@""@K& out:
[[[[A@@@& out:

@@"ࠠ"蠠@LJ@@!
[[[[A@@##  #D##h@K	-  if (h->public_state != get_next_state (h))
']\]e(]\]A@@@	-  if (h->public_state != get_next_state (h))

@@#-#@K	*    h->public_state = get_next_state (h);
>]]?]]A@@@	*    h->public_state = get_next_state (h);

@@#D#@K	#  pthread_mutex_unlock (&h->lock);
U]]V]]A@@@	#  pthread_mutex_unlock (&h->lock);

@@#[#@K.  return ret;
l^^
m^^A@@@.  return ret;

@@#Рr#ؠ@K"}
^ ^'^ ^,A@@@"}

@@#蠠#𠠐@LJ@@!
^.^5^.^9A@@$ $@gnogno
@@gV@$$@K*    free (bmnbmn A@B@K-_printable);
@@@@@9    free (%s_printable);
@@$$@K2CALLBACK_IS_NULL (Rl]lnRl]lA@B@K=_callback) ? "<fun>" : "NULL"@@@@@	1CALLBACK_IS_NULL (%s_callback) ? "<fun>" : "NULL"@@%%@B@@@"%s
SllSllA@@%8%@@K", Vmm%Vmm)A@@@", 
@@%#%@B@@@"%s:Ejyj;EjyjA@@&$9&,@B@K3 ? "true" : "false"O;hhP;hhA@@@@5%s ? "true" : "false"
@@&XU&`@K'"<fun>"fAiigAiiA@@@'"<fun>"
@@&l&@B@@@"%sBiiBijA@@&&@Cjj!Cjj-@@C[@&Ԡ&ܠ@B@@@"%sDjRjrDjRjvA@@&'@K&(int) FjjFjjA@B@@@@((int) %s@@'0'8@B@K-_printable ? @isi@isiA@B@K1_printable : "", @B@@@@@@@	$%s_printable ? %s_printable : "", %s@@''@B@@@"%s
=hi=hi"A@@'Ġ	'̠@B@K-_printable ? Hkk0 HkkTA@B@K/_printable : ""@@@@@@	 %s_printable ? %s_printable : ""@@( 0(@B@@@"%sGIkYkHIkYkA@@(8F(@@K", WLkkXLkkA@@@", 
@@(t](|m(p(ࠠ@L`B@L}LeL s@@@@@@' %s=%%s,ff,fgA@@))$@L`B@K#=0x-gg/-gg:A@LeL x@@@@@@) %s=0x%%x@@)D)L@L`B@L}LeL s@@@@@@' %s=%%sc
c$c
c-A@@)̠)Ԡ@L`B@L}LeL s@@@@@@' %s=%%s
d	d,d	d5A@@)*@L`B@L}LeL d@@@@@@' %s=%%d7d=dY8d=dbA@@*$6*,@BDded}Eded@@X@*@j*H@L`B@K#=0xdddeddA@LeL x@@@@@@) %s=0x%%x@@*ht*p@L`B@L}LeK("PRIi64"eeee,A@@@@@@@. %s=%%"PRIi64"
@@**@L`B@L}LeK"zu e/eG e/eQA@@@@@@@( %s=%%zu
@@**@L`B@K,=<sockaddr> !eTe|!eTeA@B@L}LeL d@@@@@@@@5 %s=<sockaddr> %s=%%d@@*젠*@L`B@L}LeL s@@@@@@' %s=%%s*$ee+$eeA@@+)+@L`B@L}LeL u@@@@@@' %s=%%uT%efU%efA@@+<S+D@L`B@L}LeK("PRIu32"x&ff5y&ffGA@@@@@@@. %s=%%"PRIu32"
@@+d~+l@L`B@L}LeK("PRIu64"'fJfc'fJfuA@@@@@@@. %s=%%"PRIu64"
@@++@L`B@L}LeK)"PRIuPTR"(fxf(fxfA@@@@@@@/ %s=%%"PRIuPTR"
@@++@L`B@K#=\"cccd A@LeK$s\" @B@L}LeK"zu#@@@@@@@@@@@3 %s=\"%%s\" %s=%%zu*@@+𠠑+@L`B@K'=<buf> 0cNcy1cNcA@B@L}LeK"zu@@@@@@@@@1 %s=<buf> %s=%%zu@@,,K,4@L`B@L}LeL d@@@@@@' %s=%%dvddwddA@@,Xu,`@L`B@L}LeL s@@@@@@' %s=%%s#ee#eeA@@,,@K&enter:bbbbA@@@&enter:
@@,,,̠,𠠐@Ȱaaaa@@V@-p-x@K*    char *`O`[`O`wA@B@K-_printable =
@@@@@9    char *%s_printable =
@@--@K	,        nbd_internal_printable_string_list (`{``{`A@B@K#);
@@@@@	1        nbd_internal_printable_string_list (%s);
@@--@K*    char *$_6_B%_6_^A@B@K-_printable =
@@@@@9    char *%s_printable =
@@-젠5-@K	'        nbd_internal_printable_buffer (F_b_nG_b_A@B@K", @B@K#);
@@@@@@@	0        nbd_internal_printable_buffer (%s, %s);
 @@.b.@K*    char *s__t__A@B@K-_printable =
@@@@@9    char *%s_printable =
@@.8.@@K	'        nbd_internal_printable_string (_`_`4A@B@K#);
@@@@@	,        nbd_internal_printable_string (%s);
@@.T.\@K1  if_debug (h) {
^^^^A@@@1  if_debug (h) {

@@.|..@K.    debug (h,
bbbb$A@@@.    debug (h,

@@.Ġ.̠.䠠@K:    debug_direct (h, "nbd_bMbXbMb|A@B@K#",
@@@@@?    debug_direct (h, "nbd_%s",
@@/ // @B@Lb@@@#%s"bbbbA@@/4/</h@Lb@@!"41gzg51gzgA@@/x3/C/F/@K",
J6h$h-K6h$h4A@B@@@@$,
%s@@/ܠU/䠠X0(@K#);
iZm]mdjZm]mjA@@@#);

@@08o0@0d@K$  }
io>oEio>oLA@@@$  }

@@0t0|@K/h, "leave: ret=rr"rr4A@@@/h, "leave: ret=
@@00@K(h, "nbd_r@rKr@riA@B@K/", "leave: ret=@@@@@9h, "nbd_%s", "leave: ret=@@00Ƞ@LeK's", retsbssbsA@@@@)%%s", ret
@@11$@LeK(zd", retrsrsA@@@@*%%zd", ret
@@181@@LeK	&s", ret_printable ? ret_printable : ""ss4ssaA@@@@	(%%s", ret_printable ? ret_printable : ""
@@1T1\@LeK." PRIuPTR, ret,ss-ssA@@@@0%%" PRIuPTR, ret
@@1p21x@LeK-" PRIu64, retHssIstA@@@@/%%" PRIu64, ret
@@1N1@LeK'd", retdrrerrA@@@@)%%d", ret
@@1j1@LeK-" PRIi64, retrrrrA@@@@/%%" PRIi64, ret
@@1Ġ1̠@LeK'u", retssssA@@@@)%%u", ret
@@1ࠠ1蠠@K1  if_debug (h) {
loolooA@@@1  if_debug (h) {

@@22@K/    if (ret == pp4pApp4pWA@B@K")
@@@@@3    if (ret == %s)
@@2P2X@qp[plqp[px@@qQ@2x2@K	       debug (h, "leave: error=\"spp sppA@LeK9s\"", nbd_get_error ());
@@@@@	;      debug (h, "leave: error=\"%%s\"", nbd_get_error ());
@@22@K+    else {
!tpp"tppA@@@+    else {

@@2'2@K<      char *ret_printable =
8wqq!9wqq@A@@@<      char *ret_printable =

@@2젠>2@K	/          nbd_internal_printable_string (ret);
OxqBqOPxqBqA@@@	/          nbd_internal_printable_string (ret);

@@3U3@K-      debug (f{qqg{qqA@@@-      debug (
@@3(l30@K2    debug_direct (}~qq~~qqA@@@2    debug_direct (
@@3H3P3@K#);
t:tAt:tGA@@@#);

@@33@K<      free (ret_printable);
t{tt{tA@@@<      free (ret_printable);

@@3ܠ3䠠@K&    }
ttttA@@@&    }

@@4 4@K$  }
ttttA@@@$  }

@@44 4p@K4#include <config.h>
uuuu3A@@@4#include <config.h>

@@44@LJ@@!
u5u:u5u>A@@44@K3#include <stdio.h>
#u@uE$u@u[A@@@3#include <stdio.h>

@@4)4@K4#include <stdlib.h>
:u]ub;u]uyA@@@4#include <stdlib.h>

@@4Ƞ@4Р@K4#include <stdint.h>
Qu{uRu{uA@@@4#include <stdint.h>

@@4ࠠW4蠠@K6#include <inttypes.h>
huuiuuA@@@6#include <inttypes.h>

@@4n5 @K3#include <errno.h>
uuuuA@@@3#include <errno.h>

@@55@K4#include <assert.h>
uuuuA@@@4#include <assert.h>

@@5(50@LJ@@!
uuuuA@@5@5H@K5#include <pthread.h>
uvuvA@@@5#include <pthread.h>

@@5X5`@LJ@@!
vv#vv'A@@5p5x@K	@/* GCC will remove NULL checks from this file for any parameter
v)v.v)vqA@@@	@/* GCC will remove NULL checks from this file for any parameter

@@55@K	? * annotated with attribute((nonnull)).  See RHBZ#1041336.  To
vsvxvsvA@@@	? * annotated with attribute((nonnull)).  See RHBZ#1041336.  To

@@5
5@K	> * avoid this, disable the attribute when including libnbd.h.
vvvwA@@@	> * avoid this, disable the attribute when including libnbd.h.

@@5$5@K$ */
5ww	6wwA@@@$ */

@@5Р;5ؠ@K	&#define LIBNBD_ATTRIBUTE_NONNULL(...)
LwwMww@A@@@	&#define LIBNBD_ATTRIBUTE_NONNULL(...)

@@5蠠R5𠠐@LJ@@!
iwBwGjwBwKA@@6 h6@K4#include "libnbd.h"
ywMwRzwMwkA@@@4#include "libnbd.h"

@@66 @K6#include "internal.h"
wmwrwmwA@@@6#include "internal.h"

@@6068@LJ@@!
wwwwA@@6H6P#API6`6p-newly createdBXBoBXB|@@6*connectingB~BB~B@@6+negotiatingBBBB@@6Ƞ9connected with the serverBBBB@@6ؠ)shut downC CC C@@6蠠$dead C!C5 C!C9@@6@AAAA@@B@7\7d%, or

AB
AB@@7%, or ABAB@@777Ġ)unlocked_"@A##@A,@@88@B@8(@A@8028T@K:#ifndef LIBNBD_UNLOCKED_H
C
@c@hD
@c@A@@@:#ifndef LIBNBD_UNLOCKED_H

@@8dI8l@K:#define LIBNBD_UNLOCKED_H
Z@@[@@A@@@:#define LIBNBD_UNLOCKED_H

@@8|`8@LJ@@!
w@@x@@A@@8v888Ƞ@LJ@@!
A_AdA_AhA@@8ؠ8ࠠ@K?#endif /* LIBNBD_UNLOCKED_H */
AjAoAjAA@@@?#endif /* LIBNBD_UNLOCKED_H */

@@8𠠑8@A@9h@K'LIBNBD_;;;;A@B@@@@)LIBNBD_%s@@99@K(#define ;;;;A@B@@h@L`D@@@LJ@@@@@@1#define %-40s %d
)@@99@K'LIBNBD_:I:f:I:tA@B@L _B@@@@@@,LIBNBD_%s_%s@@9蠠9𠠐@K(#define 9:::::A@B@@h@K# 0x@DF@BB@@K"U
)@@@@@@@6#define %-40s 0x%02xU
0@@:e:u:t@K'LIBNBD_y::z:;A@B@K%_MASK@@@@@.LIBNBD_%s_MASK@@:z:@K(#define ;;';;@A@B@@h@K# 0x@DF@BB@@K"U
)@@@@@@@6#define %-40s 0x%02xU
0@@::@LJ@@!
;M;V;M;ZA@@:Ġ:̠@K'LIBNBD_9?9\9?9jA@B@L _B@@@@@@,LIBNBD_%s_%s@@:; @K(#define 9999A@B@@h@L`D@@@LJ@@@@@@1#define %-40s %d
)@@;9; I;X@LJ@@!
S99T99A@@;hR;pU;@K1#ifndef LIBNBD_H
f3T3Yg3T3mA@@@1#ifndef LIBNBD_H

@@;l;@K1#define LIBNBD_H
}3o3t~3o3A@@@1#define LIBNBD_H

@@;;@LJ@@!
3333A@@;Р;ؠ@K	@/* This is the public interface to libnbd, a client library for
3333A@@@	@/* This is the public interface to libnbd, a client library for

@@;蠠;𠠐@K	1 * accessing Network Block Device (NBD) servers.
3334A@@@	1 * accessing Network Block Device (NBD) servers.

@@< <@K# *
4444%A@@@# *

@@<< @K	, * Please read the libnbd(3) manual page to
4'4,4'4[A@@@	, * Please read the libnbd(3) manual page to

@@<0<8@K	% * find out how to use this library.
 4]4b 4]4A@@@	% * find out how to use this library.

@@<H <P@K$ */
 44 44A@@@$ */

@@<` #<h@LJ@@!
 :44 ;44A@@<x 9<@K5#include <stdbool.h>
 J44 K44A@@@5#include <stdbool.h>

@@< P<@K4#include <stdint.h>
 a44 b44A@@@4#include <stdint.h>

@@< g<@K8#include <sys/socket.h>
 x44 y45A@@@8#include <sys/socket.h>

@@< ~<Ƞ@LJ@@!
 55	 55
A@@<ؠ <ࠠ@K3#ifdef __cplusplus
 55 55*A@@@3#ifdef __cplusplus

@@<𠠑 <@K-extern "C" {
 5,51 5,5CA@@@-extern "C" {

@@= =@K'#endif
 5E5J 5E5TA@@@'#endif

@@=  =(@LJ@@!
 5V5[ 5V5_A@@=8 =@@K7#if defined (__GNUC__)
! 5a5f!5a5A@@@7#if defined (__GNUC__)

@@=P!=X@K=#define LIBNBD_GCC_VERSION \
!55!55A@@@=#define LIBNBD_GCC_VERSION \

@@=h!=p@K	D    (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)
!.55!/55A@@@	D    (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)

@@=!4=@K'#endif
!E55!F56A@@@'#endif

@@=!K=@LJ@@!
!b6	6!c6	6A@@=!a=@K	!#ifndef LIBNBD_ATTRIBUTE_NONNULL
!r66!s66=A@@@	!#ifndef LIBNBD_ATTRIBUTE_NONNULL

@@=Ƞ!x=Р@K	I#if defined (__GNUC__) && LIBNBD_GCC_VERSION >= 120000 /* gcc >= 12.0 */
!6?6D!6?6A@@@	I#if defined (__GNUC__) && LIBNBD_GCC_VERSION >= 120000 /* gcc >= 12.0 */

@@=ࠠ!=蠠@K	(#define LIBNBD_ATTRIBUTE_NONNULL(...) \
!66!66A@@@	(#define LIBNBD_ATTRIBUTE_NONNULL(...) \

@@=!> @K	.  __attribute__ ((__nonnull__ (__VA_ARGS__)))
!66!66A@@@	.  __attribute__ ((__nonnull__ (__VA_ARGS__)))

@@>!>@K&#else
!67!67A@@@&#else

@@>(!>0@K	&#define LIBNBD_ATTRIBUTE_NONNULL(...)
!7
7!7
7;A@@@	&#define LIBNBD_ATTRIBUTE_NONNULL(...)

@@>@!>H@K'#endif
!7=7B!7=7LA@@@'#endif

@@>X">`@K	0#endif /* ! defined LIBNBD_ATTRIBUTE_NONNULL */
"7N7S"7N7A@@@	0#endif /* ! defined LIBNBD_ATTRIBUTE_NONNULL */

@@>p">x@LJ@@!
"077"177A@@>"/>@K	I#if defined (__GNUC__) && LIBNBD_GCC_VERSION >= 120000 /* gcc >= 12.0 */
"@77"A77A@@@	I#if defined (__GNUC__) && LIBNBD_GCC_VERSION >= 120000 /* gcc >= 12.0 */

@@>"F>@K	-#define LIBNBD_ATTRIBUTE_ALLOC_DEALLOC(fn) \
"W77"X78A@@@	-#define LIBNBD_ATTRIBUTE_ALLOC_DEALLOC(fn) \

@@>"]>@K	3  __attribute__ ((__malloc__, __malloc__ (fn, 1)))
"n88#"o88YA@@@	3  __attribute__ ((__malloc__, __malloc__ (fn, 1)))

@@>Р"t>ؠ@K&#else
"8[8`"8[8iA@@@&#else

@@>蠠">𠠐@K	+#define LIBNBD_ATTRIBUTE_ALLOC_DEALLOC(fn)
"8k8p"8k8A@@@	+#define LIBNBD_ATTRIBUTE_ALLOC_DEALLOC(fn)

@@? "?@K'#endif
"88"88A@@@'#endif

@@?"? @LJ@@!
"88"88A@@?0"?8@K3struct nbd_handle;
"88"88A@@@3struct nbd_handle;

@@?H"?P@LJ@@!
"88"88A@@?`"?hP?x?V??\?Р?젠@LJ@@!
#%;;#&;;A@@?#$@@K	Bextern void nbd_close (struct nbd_handle *h); /* h can be NULL */
#5;;#6;<7A@@@	Bextern void nbd_close (struct nbd_handle *h); /* h can be NULL */

@@@#;@@K	 #define LIBNBD_HAVE_NBD_CLOSE 1
#L<9<>#M<9<aA@@@	 #define LIBNBD_HAVE_NBD_CLOSE 1

@@@,#R@4@LJ@@!
#i<c<h#j<c<lA@@@D#h@L@K	,extern struct nbd_handle *nbd_create (void)
#y<n<s#z<n<A@@@	,extern struct nbd_handle *nbd_create (void)

@@@\#@d@K	0    LIBNBD_ATTRIBUTE_ALLOC_DEALLOC (nbd_close);
#<<#<<A@@@	0    LIBNBD_ATTRIBUTE_ALLOC_DEALLOC (nbd_close);

@@@t#@|@K	!#define LIBNBD_HAVE_NBD_CREATE 1
#<<#<=A@@@	!#define LIBNBD_HAVE_NBD_CREATE 1

@@@#@@LJ@@!
#=	=#=	=A@@@#@@K	)extern const char *nbd_get_error (void);
#==#==EA@@@	)extern const char *nbd_get_error (void);

@@@#@Ġ@K	$#define LIBNBD_HAVE_NBD_GET_ERROR 1
#=G=L#=G=sA@@@	$#define LIBNBD_HAVE_NBD_GET_ERROR 1

@@@Ԡ#@ܠ@LJ@@!
$=u=z$	=u=~A@@@젠$@@K	!extern int nbd_get_errno (void);
$==$==A@@@	!extern int nbd_get_errno (void);

@@A$A@K	$#define LIBNBD_HAVE_NBD_GET_ERRNO 1
$/==$0==A@@@	$#define LIBNBD_HAVE_NBD_GET_ERRNO 1

@@A$5A$@LJ@@!
$L==$M==A@@A4$KA<@K	9/* This is used in the callback for nbd_block_status_64.
$\==$]=>%A@@@	9/* This is used in the callback for nbd_block_status_64.

@@AL$bAT@K$ */
$s>'>,$t>'>3A@@@$ */

@@Ad$yAl@K1typedef struct {
$>5>:$>5>NA@@@1typedef struct {

@@A|$A@K	4  uint64_t length;  /* Will not exceed INT64_MAX */
$>P>U$>P>A@@@	4  uint64_t length;  /* Will not exceed INT64_MAX */

@@A$A@K2  uint64_t flags;
$>>$>>A@@@2  uint64_t flags;

@@A$A@K.} nbd_extent;
$>>$>>A@@@.} nbd_extent;

@@AĠ$A̠@LJ@@!
$>>$>>A@@Aܠ$A䠠?B BEB, BL@K3#ifdef __cplusplus
%??%	??A@@@3#ifdef __cplusplus

@@B\%Bd@K"}
%??% ??A@@@"}

@@Bt%%B|@K'#endif
%6??%7??A@@@'#endif

@@B%<B@LJ@@!
%S?@%T?@A@@B%RB@K6#endif /* LIBNBD_H */
%c@@%d@@%A@@@6#endif /* LIBNBD_H */

@@B%iBĠC4@K$/* "%}11%~11A@B@K/" namespace */
@@@@@5/* "%s" namespace */
@@CH%CP@K9#define LIBNBD_NAMESPACE_%11%12#A@B@K" "@B@K#:"
@@@@@@@	"#define LIBNBD_NAMESPACE_%s "%s:"
 @@Ch%Cp@LJ@@!
%2126%212:A@@C%C@K$/* "%2<2A%2<2dA@B@K8" namespace contexts */
@@@@@>/* "%s" namespace contexts */
@@C%C!CР!C@LJ@@!
&33&33A@@D&D@K/#define LIBNBD_& 1@1`&!1@1{A@B@@^@L`D@@@LJ@@@@@@8#define LIBNBD_%-30s %d
)@@D<&EDD@LJ@@!
&\00&]01 A@@Dx&[D@K$/* "&l11	&m116A@B@LzB@K?" context related constants */
@@@@@@@	(/* "%s:%s" context related constants */
@@D&D!DĠ&D𠠑@E@K7#define LIBNBD_CONTEXT_&0c0h&0c0A@B@L _B@K" "@B@LzB@K""
-@@@@@@@@@@@	%#define LIBNBD_CONTEXT_%s_%s "%s:%s"
4@@E$&E,ET@K8#define LIBNBD_HAVE_NBD_&//&//A@B@K# 1
@@@@@=#define LIBNBD_HAVE_NBD_%s 1
@@E&E@LJ@@!
'
//'//A@@EĠ'E̠E𠠐@K1#define NBD_NULL_' w.w.'!w.w.A@B@K' ((nbd_@B@K	!_callback) { .callback = NULL })
@@@@@@@	=#define NBD_NULL_%s ((nbd_%s_callback) { .callback = NULL })
 @@F '<F,caml_compareF0@K1typedef struct {
'Q`+K+T'R`+K+hA@@@1typedef struct {

@@F'WF@K2  int (*callback) 'ha+j+s'ia+j+A@@@2  int (*callback) 
@@F'nFȠ@A@F@K";
'c++'c++A@@@";

@@G'G@K3  void *user_data;
'd++'d++A@@@3  void *user_data;

@@G 'G(@K	"  void (*free) (void *user_data);
'e++'e+,A@@@	"  void (*free) (void *user_data);

@@G8'G@@K&} nbd_'f,,'f,,3A@B@K+_callback;
@@@@@3} nbd_%s_callback;
@@GT'G\Gp@K8#define LIBNBD_HAVE_NBD_'g,<,E'g,<,nA@B@K,_CALLBACK 1
@@@@@	&#define LIBNBD_HAVE_NBD_%s_CALLBACK 1
@@G(G@LJ@@!
(i,,(i,,A@@G(G@K	</* These are used for callback parameters.  They are passed
(([**()[**A@@@	</* These are used for callback parameters.  They are passed

@@G(.G@K	; * by value not by reference.  See CALLBACKS in libnbd(3).
(?\**(@\*+A@@@	; * by value not by reference.  See CALLBACKS in libnbd(3).

@@G̠(EGԠ@K$ */
(V]++(W]++A@@@$ */

@@G䠠(\G젠G#oH@K	>/* Note NBD_NULL_* are only generated for callbacks which are
(sl,,(tl,,A@@@	>/* Note NBD_NULL_* are only generated for callbacks which are

@@H((yH0@K	/ * optional.  (See OClosure in the generator).
(m--(m--8A@@@	/ * optional.  (See OClosure in the generator).

@@H@(HH@K$ */
(n-:-?(n-:-FA@@@$ */

@@HX(H`Hp#H#H(HĠ#H蠠#I@LJ@@!
(z/ /(z/ /	A@@I$(I,@K'extern ((A@@@'extern 
@@I(I@K	4
    LIBNBD_ATTRIBUTE_ALLOC_DEALLOC (__builtin_free)(
!!(
!!GA@@@	4
    LIBNBD_ATTRIBUTE_ALLOC_DEALLOC (__builtin_free)
@@J8(J@$
Jd$Jt$J$JJ@A@@JJĠ$)J蠠)KK $2K,", )2##)3##@@K@KH@K?
    LIBNBD_ATTRIBUTE_NONNULL ()B##)C##A@B@K#);
@@@@@	$
    LIBNBD_ATTRIBUTE_NONNULL (%s);
@@KX)SK`@B@L`@@@#%s )o )p A@@K)nK)qK@K$nbd_) ) A@B@L`@@@@'nbd_%s @@K)KĠ@A@K@@@@L @@@@L@)) DV) Db@@ R@L'L@A@@@@@L@A@@L̠@A@@@@@Lܠ@A@@L젠@B@K*_user_data* _*	 _ A@@@@,%s_user_data
@@NN@B@K)_callback*$ _*% _A@@@@+%s_callback
@@N̠NԠ@*6*8 aAS*9 aA_@@ aR@O(^O,const char **J P
b
x*K P
b
@@Q('ssize_t*S O
J
Y*T O
J
`@@Q8&char **\ Q

*] Q

@@QH(unsigned*e R

*f R

@@QX)uintptr_t*n S

*o S

@@Qh(uint64_t*w T

*x T

@@Qx(uint32_t* U

* U
@@Q#int* M	
#* M	
&@@Q'int64_t* N
(
A* N
(
H@@Q@"-1* F		R* F		T@@@R@$NULL* G	V	{* G	V	@@@R@K(    nbd_*r.S*r.bA@B@K";
@@@@@,    nbd_%s;
@@R<*RD@K;# Public symbols in libnbd *i*i*A@D@@@LnD@@@K":
$@@@@@@@	"# Public symbols in libnbd %d.%d:
+@@R*R@K'LIBNBD_+j8A+j8SA@D@@@LnD@@@K# {
$@@@@@@@/LIBNBD_%d.%d {
+@@R+6R@K*  global:
+Gkaj+HkawA@@@*  global:

@@R+MR@A@@RР*caml_equalR蠠@K0    nbd_create;
+lm+mmA@@@0    nbd_create;

@@R+rS @K/    nbd_close;
+n+nA@@@/    nbd_close;

@@S+S@K3    nbd_get_errno;
+o+oA@@@3    nbd_get_errno;

@@S(+S0@K3    nbd_get_error;
+p+p$A@@@3    nbd_get_error;

@@S@+SH&Sl@K?  # Everything else is hidden.
+u+uA@@@?  # Everything else is hidden.

@@S+S@K,  local: *;
+v+vA@@@,  local: *;

@@S+S@L }@@!}+y, yA@@SԠ+Sܠ@K( LIBNBD_,}iv,}iA@D@@@LnD@@@@@@@@- LIBNBD_%d.%d%@@T ,0T(@K";
,A,BA@@@";

@@TT,GT\@LJ@@!
,^ @,_ @A@@Tl,]Tt!T,cU<UX'vUh'yU,oU'UԠ,W@%Utils0#_Aк6u2+l-Stdlib__Uchar0o9us:2[].Stdlib__String0.BdJP.F4Y3+Stdlib__Seq0Jd8_mJk.Stdlib__Printf0pJUX빃Ύ,Stdlib__List0U#r&L.Stdlib__Either0$_ʩ<.Stdlib__Buffer0ok
Vj&Stdlib0-&fºnr39tߠ8CamlinternalFormatBasics0ĵ'(jdǠ,00+kquS{#API0e M'cC@*Ӡ!' !g,@@@W u                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            Caml1999O030 0T         C   
   6       8          &      5       8          !      	   +       8          &          D      C      V   
          C   
      6       8          '          6       8          &      5       8          !      	   +       8          &          W         
       C   
   C   6          @       (          C   6          @       (          W            %   -   5   =   G   O      V      ^   f   n   v   ~                      C   h      @       (          C   h      @       (          D   h      @       (          C   h      @       (          C   h      @       (          C   
   C   h      @       (          C   h      @       (      5       6       @       [       C   h      @       (          C   h      @       (          C   h      @       (          C   h      @       (          C   h      @       (          C   h      @       (          C   h      @       (          C   h      @       (          C   h      @       (          C   h      @       (          C   h      @       (          C   
   h      @       (          D   
   G         F      D   
   C      C      	   +       58          "   
   	   +       8          "   
      8       $   "   
   6       8          "       +      l   ,   h   8          #   5       8          !      6          8          #   
   6          8          #   
   8          !   
   6       8          "      
   6       8          #   5       8          !      6       8          "      +      l   ,   h   8          #   5       8          !   5       8          %          D      C         6       8          '          D      C   
   8          !   
   8          !   	                     6       8          #   6       8                    	   +       8          &          D      C   
   8          !         6       8          #         
   +      8          &          D      C         6       8          '          D      C   
      6       8          #         6       8          #         C   t      I   (          E      C   h   ?             
   +      8          "       C      6       8          #   5       8          %          D      C   
      6       8          #         6       8          '          D      C         +      8          "   5       8          %      e   h   h   8          #   5       8          !   7          	   +       8          "   7          	   +       8          "   7          	   +       d8          "   7          	   +       =8          "   5       8          !   7                 +      l8          "   5       8          %          D      C            &      c   h   h   8          #   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   7             8          "   7              +      8          &          W                C   
   C   
   6       8          &      c   (          W            )   x   x   3   ?   B   {   I   {   L   O   Y   \   _   b   l   o   r   u   c   (          C   
   6       8          "       6       8          &          C   
   6       8          &          C   
   C   
   6       8          &      c   (      5       6       @       [   c   (      c   (          C   
   6       8          &      c   (      c   (      c   (          C   
   6       8          &      c   (      c   (      c   (      c   (      c   (      c   (          W                                                                     c   (          C   
   6       8          "       6       8          "   c      I   (          W                C   
   C   
   6       8          &      c   (          W                                                                     c   (          C   
   C   
   6       8          &          E   
   6       8          &      5       8          !      	   +       8          &          W                                                                     c   (          C   
   6       8          &          W               /   P   q         E     E                H  /  :  H  c   (      c   (          D      C         6       8          #       6       8          &          C   
      6       8          #       6       8          "          6       8          #       6       8          &          C   
      6       8          #       6       8          "          6       8          #       6       8          &          C   
   C   
      6       8          #       6       8          "       6       8          "   5       8          !       6       8          "   5       8          !   5       8          !   5       8          !       6       8          "          6       8          #   5          ^       V      5       8          !   5       8          %      (      c   (      5       6       @       [       C   
      6       8          '          C   
      6       8          '          C   
      6       8          #       6       8          &      c   (          C   	                  6       8                 5       8          %      c   (          C   
      6       8          #       6       8          &          C   
      6       8          '          C   
      6       8          '      c   (      c   (          W         e       C   
   C   
      6       8          #       6       8          "       6       8          "       6       8          "   5       8          !       6       8          "   5       8          !   5       8          !   5       8          !       6       8          "          6       8          #   5       8          !   5       8          !       6       8          &          C   
      6       8          '          D   
   6       8          &          C   
   6       8          &      5       8          !      	   +       8          "      6       8          "      	   +       8          &          W                C   
   C   
      6       8          "   6       A       (          C   
   6       8          "      6       8          "   6       A       (          W         %   <   3  3  U   g   w   K  ~   K                    \      \      C   
      6       8          "   6       A       (          C   
      6       8          #      6       8          "   6       A       (          D      C         6       8          #      6       8          "   6       A       (          C   
   C   
      6       8          "   6       A       (          C   
      6       8          "   6       A       (      5       6       @       [       C   
   6       8          "      6       8          "   6       A       (          C   
   6       8          "      6       8          "   6       A       (          C   
      6       8          "   6       A       (          C   
   6       8          "      6       8          "   6       A       (          C   
      6       8          #      6       8          "   6       A       (          C   
      6       8          "   6       A       (          C   
      6       8          "   6       A       (          C   
   6       8          "      6       8          "   6       A       (          C   
   6       8          "      6       8          "   6       A       (          C   
   
      6       8          #      6       8          "   6       A       (          C   
   
      6       8          "   6       A       (          C   
   
      6       8          "   6       A       (         6       8          &          W         .       C   
   C   
   6       8          "       6       8          "          6       8          #       +      l   ,   h   8          #   5       8          %          C   
   6       8          "       6       8          &         6       8          &          W            )       <   h   r   &  y   &                    1        1      C   
   6       8          &          C   
   6       8          &          D      C   
   6       8          "      6       8          &          C   
   C   
   6       8          "       6       8          "          6       8          #       +      l   ,   h   8          #   5       8          %          C   
   6       8          &      5       6       @       [       C   
   6       8          "       6       8          &          C   
   6       8          "       6       8          &          C   
   6       8          "       6       8          &          C   
   6       8          &          C   
   6       8          "       6       8          "       6       8          &          C   
   6       8          &          C   
   6       8          "       6       8          &          C   
   6       8          "       6       8          &          C   
   6       8          "       6       8          &          C   
   
   6       8          "          6       8          #          6       8          '          C   
   
   6       8          &          C   
   
   6       8          &      5       8          %      )   *         G   	      E   
   D      C   6       8          !      6       8          "   +       l   ,   h   8          #   5       8          !   5       8          !   5       8          !   5       8          !      8          !   6       8          "   5       8          !       	   +       j8          "      	   +       8          "   5       8          !       	   +       8          "      	   +       Z8          "   
      8       $   "   6       8          !             +      $l   ,   h   8          #   5       8          !   5       8          !   5       8          !   5       8          !      	   +       y8          "      	   +       "8          "   5       8          !      	   +       8          "   5       8          !      6       8          "       +      l   ,   h   8          #   5       8          !   5       8          !      	   +       8          "      	   +       c8          "      V   1      8          !   
   V          C   
         T      5       6       @       [         6       8          "   5       8          !   5       8          !   5       8          !   d   ?             +      8          "       C   V   T         V   B      W            "   >   >   F   F   >   0   >   >   F   5       8          !   5       8          !   T   3   5       8          !   T   +   5       8          !   5       8          !   T      5       8          !   5       8          !   T      5       8          !   T      5       8          !   5       8          !   5       8          !      	   +       8          "      	   +       8          "   5       8          !   5       8          !   5       8          %          W         4         >            c   (          C   
   W                                                                           T   b       C   
   
   6       8          &          C   
   6       8          &          C   
   W                                                                           T   /       C   
   6       8          "          6       8          #          6       8          #       6       8          "       6       8          "   5       8          %      5       6       @       [       D   
   6       8          &          C   
   6       8          &      5       8          !      	   +       8          "   5       8          !      	   +       8          &          W         6   E   N   W                C   
   W                                                                           T   z       C   
   
   6       8          "   6       @       (          C   
   6       8          "   6       @       (          C   
   6       @       (          C   
   6       @       (          C   
   W                                                                           T   +       C   
   6       8          "   6       @       (          C   
   6       @       (          C   
   6       @       (          C   
   6       @       (      5       6       @       [               6       8          $             W                            c   (          C   
   W                                                            r               T         D      C         6       8          #       6       8          "       6       8          "                     6       8                     6       8          "       +      l   ,   h   8          #   5       8          !       6       8          "                  6       8                 5       8          %         D      C         6       8          #       6       8          "       6       8          "                     6       8                                6       8                     6       8          "                  6       8                 5       8          %          D      C   	                  6       8                     6       8          &          C   
   W                                                                           T          C   
      6       8          #       6       8          &      c   (      5       6       @       [       W         .   Z   Z   5   Z   Z   Z       C   
   W                                                                           T   5       C   
   
         T   0       C   
         T   )       C   
   W                                                                           T          C   
         T      c   (      
   6       8          &          D      C   
   6       8          "   5       8          !       6       8          "      
      h   h   h   h   6       8       	          5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !      	   +       D8          "   5       8          !      	   +       8          "   5       8          !      	   +       L8          "   6       8          !       +      l   ,   h   8          #   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !      	   +       8          "   5       8          !   5       8          !   5       8          !   5       8          %      5       8          !       6       8          "       6       8          "   5       8          !   5       8          !   5       8          %          C   (      c   h   h   8          #   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   7           	   +       8          "   6       8       $   "   	   +       f8          "   5       8          !   5       8          !   5       8          !   5       8          %          6       8          "   5       8          !   5       8          %          C   (      c   h   h   8          #   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   5       8          !   7           	   +       8          "   6       8       $   "   	   +       8          "   5       8          !   5       8          %      +       	   +       	   +       	   +       
      +      6       8           !   6       8           !   
      +      	                   
   >                9         }  "  (  T  , G&Python&_none_@@ AA"??A@@@@@@@@@@@  , F	A"??A@*floatarrayQ  8 @@@A@@@@@5@@@5extension_constructorP  8 @@@A@@@@@9@@@#intA  8 @@@A@@@@@=@A@$charB  8 @@@A@@@@@A@A@&stringO  8 @@@A@@@@@E@@@%floatD  8 @@@A@@@@@I@@@$boolE  8 @@%false^@@S@$true_@@Y@@@A@@@@@Z@A@$unitF  8 @@"()`@@d@@@A@@@@@e@A@
#exnG  8 @@AA@@@@@i@@@%arrayH  8 @ @O@A@A@ @@@@@r@@@$listI  8 	 @P@A"[]a@@~@"::b@@ @Q@@@
@@A@Y@@@@@@@@&optionJ  8 % @S@A$Nonec@@@$Somed@@@@@A@Y@@@@@@@@&lazy_tN  8 ; @U@A@A@Y@@@@@@@@)nativeintK  8 @@@A@@@@@@@@%int32L  8 @@@A@@@@@@@@%int64M  8 @@@A@@@@@@@@:Undefined_recursive_module]    W@@@ @J@@ @@@ @V@@A̠=ocaml.warn_on_literal_patterna@.Assert_failure\    @@ @X@@A۠o@
0Division_by_zeroY    &@@@A㠰w@+End_of_fileX    .@@@A렰@)Sys_errorW    6@2@@A(@.Sys_blocked_io[    ?@@@A0@)Not_foundV    G@@@A8@'FailureU    O@K@@A
A@0Invalid_argumentT    X@T@@AJ@.Stack_overflowZ    a@@@AR!!@-Out_of_memoryS    i@@@A&Z))@-Match_failureR    q@plm@ @c@@A4h77@
%bytesC  8 @@@A@@@@@;@@@&Stdlib&Printf#API%Utils9generate_python_methods_h o@@@ @ "Y@ $unitF@@ @ jY@  @ @ !Y@ @)Python.mlYY@@b@;generate_python_libnbdmod_c @@@ @ Y@ @@ @ Y@ @ @ Y@ @ T		 T	
@@wB<print_python_closure_wrapper @#API'closure@@ @ Y@ 3@@ @ Y@ @ @ Y@ @0 1 9@@D4print_python_binding @&stringO@@ @ cY@ 5@&$call@@ @ AY@ ;V@@ @ Y@ <@ @ =Y@ 6@ @ 7Y@ 4@S#"["_T#"["s@@]9generate_python_methods_cc@l@@ @ 	%Y@ 	"$unitF@@ @ Y@ 	#@ @ 	$Y@ 	!@kSL}LlSL}L@@ n)py_fn_rexi#Str&regexp@@ @ Y@ <@|RR}RR@@ q,py_const_rexl@@ @ Y@ @RRRR@@ r6generate_python_nbd_pym@@@ @ Y@ @@ @ "Y@ @ @ Y@ @RSRS@@ s@B@@PE@@ABA@@ H@@AyD@@BC@@1G@@ACF@@BCD@@H@  , FRSvv
AA=Python.generate_python_nbd_pyA@@@  , FRRRR@93Python.py_const_rexA@@A@@ABC@@F@  , F$RRRR@W0Python.py_fn_rexA%,(
#@BC@@E@  , F/SL}LRyRAA	 Python.generate_python_methods_cA@.-@@  , F5#"["tQLrL{AA;Python.print_python_bindingA@43@@  , F; : "-"6AA	#Python.print_python_closure_wrapperA@:9@@  , FtA T	
 ~AA	"Python.generate_python_libnbdmod_cA@@?@@  , FdGY R		AA	 Python.generate_python_methods_hA@FE@@  , F<M Q		 Q		@@@Z@ 9
AD
Y@T@%param A@@A@@A@  , F$` Gpr O	w	@@@Z@ ABcA@  , Fj
 Gp| L	(	+@A	&Python.generate_python_methods_h.(fun)A@ih@@  , Fp L	(	,@$listI@@[@ [@ C@@[@ B[@ 7B-})A@  , E' O	w	( O	w	@$listI\@  @@\@ \@ IB?;A@  , E9 O	w	: O	w	@AOA@@@  , E>d? Elm@H@@Z@ XANJA@  , EHcIc@R@@Z@ bAXTA@  , ERbegSbe@\@@Z@ dlAb^A@  , Ex\aZ\]aZc@f@@Z@ 2vAlhA@  , E`ðf`<>g`<X@p@@Z@  AvrA@  , EHͰp_q_:@z@@Z@ A|A@  , E0װz^{^@@@Z@ AA@  , E]]
@@@Z@ jAA@  , E \\@@@Z@ >AA@  , DZZ@@@Z@ *CA@  , D @@@A@  , D J J	@@@\@ A$name @ H~ H~@@A@
A@@A@@A@  , D I I@@@\@ RB
A@  , Dl"
 K		'@@@A@  , DP& s

 s

@@@Z@ }A̐ T		@-@ A@@A@@A@  , D88 r r@@@Z@ KA;A@  , D B q q@@@Z@ AEA@  , DL e p@@@Z@ pB&O"A@  , CV e mEH@A	(Python.generate_python_libnbdmod_c.(fun)A@UT@@  , C\ mEI@@@[@ 0[@ r@@[@ q[@ &B=f9A@  , Cm p p@\@ @@\@ \@ 5BLuHA@  , C| p  p@A;A@zy@@  , C$ dWY% dW@.@@Z@ ADA[WA@  , C. cLN/ cLU@8@@Z@ NAeaA@  , Ct8 b+-9 b+J@B@@Z@ XAokA@  , C\B a "C a )@L@@Z@ bAyuA@  , CDL `M `@V@@Z@ ylAA@  , C,V _

W _
 @`@@Z@ GvAA@  , C` ^

a ^

@j@@Z@ AA@  , Bǰj ]

k ]

@t@@Z@ AA@  , BѰt \

u \

@~@@Z@ AA@  , B۰~ [

 [

@@@Z@ AA@  , B Z
u
w Z
u
@@@Z@ MAA@  , B Y
P
R Y
P
s@@@Z@ AA@  , B X
E
G X
E
N@@@Z@ AA@  , Bl W
'
) W
'
C@@@Z@ ƐAA@  , BT
 U

 U

$@@@Z@ АCA@  , B8
@@@A@  , B k" k1@@@\@ ȐA$name @ f f@@*C%@
A@@A@@A@  , A/ j j@@@\@ MݐA2
A@  , A9 i i@@@\@  B<A@  , AC h h@@@\@ B)F!A@  , AM g g@@@\@ A3P+A@  , AW
 l3D@@ @7T/A@  , Ap["!"#"!"+@@@Y@ $AW -@&cbname &stringO@@ @ @ < B@@wE&cbargs $listI %cbarg@@ @ @@ @ @) D* J@@F&params @@ @ Z@ &stringO@@ @ Z@ @ @ Z@ İ@@ @ įZ@ ī@J K @@O@8B@@AFC@@V A@@+D@@ABC@@D@  , AXZ"	"["	"@d@@Y@ ϥA\D@  , A@d!!e!"@n@@Y@ sAfD@  , A(˰nlno!!@
@@Y@ yBp(D@  , Aհxlxy!!@A	)Python.print_python_closure_wrapper.(fun)A@@@  , A۰~
\^
\j@@@Y@ JA8D@  , @	QS	QZ@@@Y@ ABD@  , @BDBO@@@Y@ ALD@  , @
@@@@Y@ ˴AVD@  , @	@@@Y@ ˂̐A`D@  , @
@@@Y@ P֐AjD@  , @t@@@Y@ AtD@  , @\!~~@@@Y@ A$~D@  , @D+>@>|@@@Y@ ʺA.D@  , @,5+-+<@@@Y@ ʈA8D@  , @?  )@@@Y@ VABD@  , ?I  @@@Y@ $ALD@  , ?S  @ @@Y@ AVD@  , ?]   @
@@Y@ &A`D@  , ?g
  @@@Y@ Ɏ0AjD@  , ?q ce c@@@Y@ \:AtD@  , ?{ :< :a@(@@Y@ *DA ~D@  , ?l( ) 8@2@@Y@ NA*D@  , ?T2 
3 
@<@@Y@ XA4D@  , ?<< = @F@@Y@ ȔbA>D@  , ?$F G @P@@Y@ blAH D@  , ?P Q @Z@@Y@ 0vAR
D@  , >Z [ @d@@Y@ A\D@  , >d ]_e ]@n@@Y@ AfD@  , >˰n PRo P[@x@@Y@ ǚAp(D@  , >հx rty =N@@@Y@ nC{3D@  , > r@A
A@@@  , > NP Np@@@Y@ >AAD@  , >p
@@ADDA  , >h  >J@ABLJ@I@AB@@C  , >X  >C@A(A@@@  , >D  @@@Y@ ĀːAC@  , >, {} @N@@Y@ QՐBC@  , > { @AAA@@@  , > pr py@@@Y@ "A,C@  , =%  dn@g@@Y@ B(6C@  , =/  dg@AZA@-,@@  , =4  @@@Y@ jA7EC@  , => IK I@@@Y@ 8AAOC@  , =H >@ >G@@@Y@ AKYC@  , =R $& $<@@@Y@ AUcC@  , =l\   "@	@@Y@ %A _mC@  , =Tf	 
 @@@Y@ p/A
iwC@  , =<p  @@@Y@ >9AsC@  , =$z  @$unitF@@Y@ FF!C@  , <* + @4@@Y@ sPB+C@  , <4 5 @>@@Y@ AZA5C@  , <> OQ? O}@H@@Y@ dB?C@  , <
i@@hABCA  , <oAl@D@@A@@A  , <pR ,3S ,U@@AO!n K@@ @ _@ @_ ` @@G@B@@Ai A@@B@@BB  , <`ʰm Van Vc@@AiȰ@@A@@A	  , :A@nA  , :հx Pwy P@@@Z@ UBzٰ@ A@@A@@A@  , :@AAG  , : h{ h}@@A
A  , :  @@@\@ ÎC!n B@@ @ z@ ~ ~@@N@'*match*B@@AC@@)@AB@@C@  , : @@5AC)  , 9  @@@\@ ¹?D!n @@ @ m@  @@%L#len @@ @ n@  @@0M+@B@@AC@@V@AB@@C@  , 98( Y@@bA"5
CV  , 9= !( !`@@@\@ lD!n @@ @ ^@  @@RH#len @@ @ `@  @@]IX@\B@@AC@@D@@A@BC@@D@  , 9Th  @@@\@ B+kD@  , 98r  @@@\@ ED5uD@  , 9| MT  M@)@@\@ E?'D@  , 8) -4* -K@3@@\@ UBI1D@  , 83 4 +@=@@\@ BS;D@  , 8= > @G@@\@ ɐC]ED@  , 8
G bs@@AaID   , 8PL Y`M Y@V@@\@ ؐDO!n I@@ @ g@] t^ t@@J#len l@@ @ i@g th t@@Kð@k@AC@@D@@A@BC@@D@  , 8 Ѱt u W@~@@\@  B(D@  , 8۰~ 
 @@@\@ 
A2D@  , 7  @@@\@ C<%D@  , 7 
@AA@@@  , 7 ls l@@@\@ x"BJ3D@  , 7 -4 -j@@@\@ ,ET =D@  , 7p 
 
+@@@\@ 6B^
GD@  , 7T  @@@\@ :@BhQD@  , 78  @@@\@ JCr[D@  , 7%
 @@OAv"_DC  , 6* 9M 9O@@UA(OAI  , 6X0AX@+RAL  , 6(3   @@^@1@ A@@A@B@@A@A@  , 6$> 1 =@jB>@ A@@A@@A@  , 6I@qADAI  , 6M  @AxA@KJ@@  , 5R@zA!n @@ @ @  @@^WY@B@@A@B@@B  , 5e 	 @AA@cb@@  , 5j@A!n @@ @ @  @@vVq@B@@A5@B@@B1  , 5}  ! @AA@{z@@  , 5@A!n @@ @ @- . @@U@B@@AM@B@@BI  , 58 9 @AA@@@  , 5= @\@ ŢǐB=!n @@ @ @J K @@T@|B@@AC@@m@AB@@C@  , 5p@A	Ck  , 4Z cx[ c~@AA@@@  , 4@AY!n S@@ @ @g csh ct@@Sð@B@@A@B@@B  , 4ϰr I\s Ib@AA@@@  , 4@Aq!n k@@ @ @ IW IX@@R۰@B@@A@B@@B  , 4 2 H@AA@@@  , 4 7@Q\@ HB!n @@ @ @ ) *@@Q@B@@A@B@@B@  , 4t	@+AB  , 4`	  @A1A@		@@  , 4P	 @n6B!n `@@ @ ]@ ļ@  @@	P&	@uB@@ADvC@@@AB@@D@  , 48	*$@RA	&
D  , 3	.1AV@	)A  , 3p	1  =F@A\A@	/	.@@  , 3\	6  @@@\@ 
eA	9@ A@@A@B@@A@A@  , 3D	F  @@@\@ ƶuB	IA@  , 34	P  @A{A@	N	M@@  , 3 	U  @@@\@ ƇA	XA@  , 3	_
 =M@@@	\#A@  , 2	c  @@A!n @@]@ ]@ ƽ@  @@	sX	n@B@@A A@@B@@BA  , 2	}-A@	x@@A@@A  , 2	% 1& <@@A#!n @@\@ |\@ @@1 ,2 -@@	Y	@B@@A; A@@B@@BA  , 2	kA@9	@@A@@A  , 2	D!!E!!@@@Z@ }АBF	@P A@@A@@A@  , 2	@AL	AE  , 2	V!!W!!>@`@@\@ BY!n @@ @ ̚@e ! 6f ! 7@@	\	@qB@@AC@@"@AB@@C@  , 2d	ϰr  s !@|@@\@ {B	C@  , 2H	ٰ|  }  @@@\@ C&	C@  , 2(	 \ c \ @@@\@ ͧC0	%C@  , 2	 < C < Z@@@\@ YB:	/C@  , 1	
!@!Q@@!A>	3CJ  , 1P	   @@'A!n @@ @ ̓@@@

[
@B@@Ac@B@@B_  , 1(
@@<A!n e@@ @ ̋]@ ̆@

@@
"Z%
@"jB@@ADkC@@@AB@@D~  , 0
0!}!!}!@@[A
.A  , 0h
6aA^@
1A  , 0L
9PLfLhPLfLp@@@Y@ A
<#"["[@$name @#"["x@@
T^$args ݠ#arg@@ @ C@@ @ B@	#"["{	#"["@@
e_'optargs &optarg@@ @ H@@ @ G@	#"["	#"["@@
v`#ret #ret@@ @ K@	!#"["	"#"["@@
a-may_set_error $boolE@@ @ N@	.#"["	/#"["@@
b&params	@@ @ Z@ ೠ@@ @ Z@ ഠ=@@ @ Z@ @ @ Z@ C@@ @ BZ@ >@	Ro-9-?	So-9-E@@
w)optparams/)	@@ @ Z@ 雠(@@ @ Z@ 霠a@@ @ Z@ @ @ Z@ }@@ @ |Z@ x@	u2\2b	v2\2k@@
 J&params3Q
!@@ @ H@@ @  B@@ @ @ @ Z@ @@ @ Z@ @	3)3/	3)35@@
 M'use_retT&Stdlib#ref
@@ @ Z@ @@ @ Z@ @	EoEu	EoE|@@ d@F@@AC@@BB@@E@@eH@@ABbA@@GIG@@AD@@.J@@ABCD@@J@  , 04$	OLKLM	OLKLd@	@@Y@ A' J@  , 0.	IKK	NL>LI@	p@@Y@ B1*J@  , 08	IKK	NL>LA@A	!Python.print_python_binding.(fun)A@76@@  , />	/HH	HKK@	@@Y@ 	
BA:J@  , /H	/HH	HKK@AA@FE@@  , /M	.HH	.HH@	@@Y@ 	APIJ@  , /W	-HH	-HH@
@@Y@ 	&AZSJ@  , /a
	+@@	*A!]VJ@  , /d
'GG
'GH)@@@[@ 	4A,haJ@  , /o@	7A.jcJ@  , /q
%GG
%GG@
@@[@ 	@A8tmJ@  , /l{
@	CA:voJ@  , /d}
 *HqHx
!*HqH@@@[@ ~[@ T	NAF{J@  , /L
,)H;HB
-)H;Ho@
6@@[@ #	XAPJ@  , /4
@@	\ASJ@  , /,
9#G9G@
:#G9G\@4@@[@ [@ 	gA_J@  , /
E"GG
F"GG7@
O@@[@ X	qAiJ@  , .
@@	uAlJ@  , .
R FF
S FG@K@@[@ O	~AvJ@  , .
@	AxJ@  , .
^FF
_FF@Y@@[@ [@ 	AJ@  , .ǰ
jFdFk
kFdF@
t@@[@ 	AJ@  , .Ѱ
@@	AJ@  , .X԰
wF-F@
x+HH@@	AJ@  , .Hٰ
|EE
}F#F+@
@@Y@ 	BJ@  , .8
EE
F#F&@AA@@@  , .(	@@	AJ@  , .$
EoE
EoE@A	A@@@  , .
EoEq	@@	A@BCD@@I@  , .

EE

EE&@@@Y@ Z@ p	ɐAI@  , . 
DE
DE@
@@Z@ ?	ӐAI@  , -
DD
DD@
@@Z@ 
	ݐA$I@  , -
	DpDt

DD@
@@Z@  	B.I@  , -"

DD

DD@
@@[@  	B%@*J@@A @ @AB=D@@J@  , -3@	A.	J@  , -5

DD

DD@@
 A!sS&stringO@@ @  @

DD

DD@@F cA651/+@K@@ABCD@@K@  , -lN

DD

DD@&optionJ@@ @  @@ @  
$AXkI@  , -X_DVDnE'E*@@
*A ]pI@  , -LdCCDIDT@
@@Y@ 
3B*gzI@  , -<nCCDIDL@A6A@lk@@  , -(sCjClCC@
@@Y@ 
BB9vI@  , -} CjCv!CC@AEA@{z@@  , -%CHCJ&CHCh@/@@Y@ [
QAHI@  , ,/C;C=0C;CF@9@@Y@ )
[ARI@  , ,9BB:C(C9@@@Y@ ~
eC\I@  , ,CBB
@AgA@@@  , ,GBBHBB@Q@@Y@ 3
sBjI@  , ,QB{B}RB{B@[@@Y@ 
}AtI@  , ,t[AA\BqBy@
@@Y@ 
B~I@  , ,d°eAAfBqBt@AA@@@  , ,PǰjAAkAA@t@@Y@ b
AI@  , ,8Ѱt88uAA@@@Y@ 
BI@  , ,(۰~88AA@AA@@@  , ,5588@"@@Y@ 
BI@  , ,55)88@AA@@@  , +4545@@@Y@ 
AI@  , +4444@@@Y@ 
ȐAI@  , +
4y4{4y4@@@Y@ 
ҐA
I@  , +

4l4n4l4w@@@Y@ M
ܐA
#I@  , +
3p3r4Y4j@B@@Y@ 
C
-I@  , +t
!3p3~
@AA@

@@  , +\
%3N3P3N3n@@@Y@ 
A
(;I@  , +L
/

@@
A
+>IA  , +D
43)383)3J@A
B
3,('#@@A@BCD@@H
  , +0
@3)3+@@
A
=
HA  , +,
F2n2r33%@AB
E>:@9@A6CD@@G  , +
Q2n2{33@AA@
O
N@@  , +
V2\2^!@@ A
SGA  , +
\p-H-L 2N2X@A'B
[TPK@E@ABC@@F  , *
g
p-H-U2N2S@A/A@
e
d@@  , *
ll--
l--@@@Y@ ;A/
oF@  , *
v_+4+6k,-@@@Y@ ݄EB9
yF@  , *
#_+4+@$k,,@AHA@
~
}@@  , *
(-##)^+*+2@@@Y@ rTBH
-F@  , *
2-##3^+*+-@AWA@

@@  , *
7,##8,##@A@@Y@ CcAW
<F@  , *l
A+#m#oB+#m#@K@@Y@ mBa
FF@  , *T
K+#m#
@@@Z@ [@ 5xAl
QF@  , *@
V*#K#MW*#K#k@`@@Y@ ѽAv
[F@  , *(
`)#/#1a)#/#I@j@@Y@ ыA
eF@  , *
ǰj(###%k(###-@t@@Y@ YA
oF@  , )
Ѱt'##u'##!@~@@Y@ 'A
yF@  , )
۰~&""&"#@@@Y@ C
F@  , )
&""
@AA@

@@  , )
%""%""@@@Y@ ЎB
F@  , )
$""$""@@@Y@ \A
F@  , )

@@A
FA  , )`A@
@@A@B@@B  , )8&""&"#@@@@ A@@A@@A@  , )W***W**E@@AѠ!n	@@ @ ]@ @W**W**@@#r
"@CB@@AA@@B@@CR  , (1F''F''@@A!n@@ @ Ҭ]@ ҩ@F''F''@@Bk#>@CB@@A@B@@C  , (M8%0%78%0%v@@@\@ mC!n	@@ @ Ҏ]@ ҉@
5$$
5$$@@dg
$`@CB@@AA@B@@C@  , (n
7$$
7$%.@
@@\@ :B!rC@  , (y
9%x%@@@A&#wCO  , (T
"\**
#\**@
,@@\@ SKBC!n
@@ @ @
2[**
3[**@@t@B@@Al@B@@B@  , (<
<]*+)@@`ABn  , (
AY*X*_
BY*X*z@
K@@\@ ۸jBb!n`@@ @ @
PX*F*S
QX*F*T@@s@B@@A@B@@B@  , '
ZZ*|*@@~AB  , '
_U))
`U))@
i@@\@ B!n

[@@ @ @
oT))
pT))@@q˰@B@@A@B@@B@  , 'ְ
yV)*
@@AB  , '۰
~S))
S))@@A!n
u@@ @ Ҿ@
S))
S))@@p@B@@A@B@@B  , '`
Q),)3
Q),)\@
@@\@ B!n
@@ @ Һ@
O()
O()@@o @B@@A@B@@B@  , 'D
P))
P))*@
@@\@ ٚאBB@  , ',

R)^)@@AB  , '
N((
N((@@A٠!n

@@ @ Ҷ@
M((
M((@@)n$@B@@A@B@@B   , &0
K(l(s
K(l(@
@@\@ زB!n	
@@ @ ҳ@
J(\(g
J(\(h@@Dm?@B@@A@B@@B@  , &J
L((@@AGB  , &O
H((
H((%@
@@\@ B!n
@@ @ Ұ@G''G'( @@cl^@B@@A<@B@@B@  , &|iI('([@@0AfB>  , &PnD'm'tD'm'@@@\@ /:B2!n
@@ @ ҥ@!C'W'd"C'W'e@@j}@B@@A[@B@@B@  , &8+E''@@OAB]  , &(0B''&1B''2@@@Z@ vYBP@l@A@@A@  , &@^ATAl  , %?A&&@A&'@@dA[!n6@@ @ ҝ@JA&&KA&&@@i@B@@A@B@@B  , %U>&r&yV?&&@	@@\@ D~Cv&cbnameQ@@ @ җ@d:%%e:%%@@h@B@@AC@@@AB@@C@  , %ΰq>&r&@AA@@@  , %Ұu=&=&Dv=&=&p@@@\@ C C@  , %ܰ<&&<&&;@@@\@ ՎB*C@  , %d;%%;%&@@@\@ @B4)C@  , %L
@&&@@A8-CŠ  , %3$_$f3$_$@@@\@ ӄB!n @@ @ ҄@2$B$R2$B$S@@
e%count @@ @ ҅@2$B$U2$B$Z@@f@B@@AC@@@AB@@C@  , % (4$$@@A"
C  , $"1$$1$$A@@A!n @@ @ @0#$0#$@@1d,@B@@A
@B@@B  , $8/##/##@@ A!n @@ @ {@/##/##@@FcA@B@@A@B@@B  , $<MA@HA   , $P?&&?&&@@@N@
A@@A@B@@A@A@  , #[i,,i,,@@@\@ I'B!n@@ @ ݚ@h,,h,,@@ovj@B@@AA@@B@@B@  , #wj,,@@>At
BB  , #} e,,!f,*,p@
@@\@ ޮICA&cbname@@ @ ݑ@/a+O+`0a+O+f@@u@	B@@AC@@$@AB@@C@  , #<e,,@A`A@@@  , #@d++Ad+,
@J@@\@ FiC C@  , #pJc++Kc++@T@@\@ sB*C@  , #TTb+l+sUb+l+@^@@\@ ݪ}B4)C@  , #<
^g,r,@@A8-CD  , #@A@{@O@A@@AI  , "Űhf,*,5if,*,o@@@Cð@oA@@A@HB@@A@A@  , "аs11t11@AA@@@  , "հx11y11@7\@ uB!n*@@ @ ]@ @1111@@ G@CB@@A.A@@B@@D@  , "&@A
CR  , "}//}/0@AA@@@  , " }//}/0@b\@ ^ːBĠ!n"
V@@ @ |]@ y@}//}//@@ @ @CB@@A+@B@@D@  , "|$@A
C)  , "d#x..x..@AA@! @@  , "T(x..x..@\@ iB!n@@ @ ^]@ Y@w.Z.rw.Z.s@@=|!9@CB@@AS@B@@D@  , "8Gx..$@\@ CIC@  , "P-@A!LCZ  , "T22%22M@AA@RQ@@  , !Y22*229@\@ V$B!n-@@ @ @
22 22!@@k If@B@@A}@B@@C@  , !q22;@\@ ;BrB@  , !y%@>AtB  , !|11 12@ADA@zy@@  , !$11%11@\@ LBD!n,
B@@ @ @211311@@ H@B@@A@B@@C@  , !<11@\@ 	cBB@  , !h%@fAB  , !TG1k1H1k1@AlA@@@  , !DL1k1M1k1@\@ 'tBl!n)@@ @ @Z1k1~[1k1@@ F@B@@A@B@@C@  , !(@ABʠ  , !İg1?1Sh1?1j@AA@@@  , !ɰl1?1Xm1?1g@+\@ B!n(@@ @ @z1?1N{1?1O@@ Eְ@B@@A@B@@C@  ,  @AB  ,  0011>@AA@@@  ,  0001@K\@  B!n'@@ @ @0000@@ D@B@@A
@B@@C@  ,  11@\\@ fːCB@  ,  	%@AB  ,  x0000@AA@
	@@  ,  h0000@s\@ ܐBԠ!n&@@ @ @0000@@# C@B@@A5@B@@C@  ,  L)00@\@ B*B@  ,  41%@A,B:  ,   40A0S0A0@AA@21@@  ,  90A0Y0A0@\@ ?B!n%@@ @ @0A0N0A0O@@K BF@B@@A]@B@@C@  , Q@ALBZ  , T~00~00@@AA@RQ@@  , Y~00~00,@\@ $B!n$	@@ @ @
~00~00@@k Af@B@@A}@B@@C@  , q~00.@\@ ;BrB@  , y%@>AtB  , ||// |//@ADA@zy@@  , x$|//%|//@\@ LBD!n!@@ @ u@2|//3|//@@@B@@A@B@@C@  , \<|//@\@ cBB@  , D%@fAB  , 4G{/M/cH{/M/o@mBd@@A@@A@  , 	@rAhA  , Sz//5Tz//L@AxA@@@  , Xz//:Yz//I@\@ zBx!n @@ @ m@fz//,gz//-@@~°@B@@A@B@@C@  , @AB֠  , аsy..ty./@AA@@@  , հxy..yy./@7\@ "B&cbnames@@ @ g@y..y..@@}@B@@AC@@@AB@@D@  ,  @A	C  , u-.v. .Y@AA@@@  , |u-.u-.@Z\@ ÐB!n@@ @ T@t--t--@@z%count@@ @ U@t--t--@@{@B@@AC@@)@AB@@D@  , `v. .)*@x\@  C$C@  , D%2@A& C.  , ((s--s--@AA@&%@@  , -s--s--@\@ B!n@@ @ O@s--s--@@?y:@B@@AQ@B@@C@  , Es--@\@ QCFB@  , M%@AHBV  , Pr-f-xr-f-@AA@NM@@  , Ur-f-}r-f-@B	!n@@ @ K@r-f-sr-f-t@@ex`@B@@Aw@B@@C@  , k@0AfBt  , 4nA3@	)iAw  , ,q2223@A9A@on@@  , v2223@\@ AB	:!n1@@ @ @'22(22@@ L@B@@A12A@@B@@C@  ,  323@\@ CZBB@  , '@]ABB  , ?22@22@AdA@@@  , D22E22@jB	c&cbname0=@@ @ @P22Q22@@ K@B@@AC@@,@AB@@D@  , @A	C"  , lA@	y@3@A@@A'  , l°e44%f4Y4b@AA@@@  , Xǰj33k34@t@@\@ B	ʰ@v8A@@A@	B@@A	C@@B@A@  , <ٰ|33}33@@@\@ JB	A@  , ,3333@AA@@@  , 3333@@@\@ A	!A@  ,  
4Y4i@@@	%A@  , 3333@@A	!n4e@@]@ ]@ Q@3333@@ N@B@@A5A@@B@@BA  , -A@	@@A@@A  , 484M484X@@A	נ!n6@@\@ .\@ @484E484F@@% O @B@@A7A@@B@@BA  , /mA@	*@@A@@A  , 48N8h8N8@@A	!n:@@ @ (@8N8\8N8]@@B Q=@B@@A;A@@B@@BB  , dL7777@@@\@ 	A
&cbname9@@ @ @585I585O@@_ PZ@
^B@@AC@@ @AB@@C@  , Lh7777@@@\@ Z	4AkC@  , 4r7777@@@\@ 	>C&uC@  , |7i7p 7i7@)@@\@ 	HB0%C@  , )77*77g@3@@\@ p	RA:/C@  , 377	477@=@@\@ >	\AD9C@  , =66>67 @G@@\@ 	fANCC@  , G66H66@Q@@\@ 	pBXMC@  , Q6S6ZR6S6@[@@\@ 	zAbWC@  , |[66\66Q@e@@\@ >	BlaC@  , `°e55f56@o@@\@ 	BvkC@  , D̰o55p55@y@@\@ 	BuC@  , (ְy5U5\z5U5@@@\@ 8	CC@  , 
8 8M@@	AC  , A	@
@@A@@A  , AA4AA6@@	A
@IA@@A@@AS  , ?(?>?(?@@@	A
A  , AcAuAcA@@	A
!nHw@@ @ @AcApAcAq@@	 ^@B@@A@B@@B  , A7AIA7Ab@@	A
Ҡ!nG
@@ @ @A7ADA7AE@@ ]@B@@A3@B@@B1  , T%@@@@@@@\@ 7	C
!nFi@@ @ @@@@@@@8 \3@B@@AM@B@@B@  , 8>@A@@
A;BO  ,  C@@@@@@
AAYAU  , I@@@Y@g@@@\@ ~
D!nEX@@ @ @?@?@@@\ [W@B@@Aq@B@@B@  , b@i@@@
)A_Bs  , g
????@@
/A)!nDM@@ @ @????@@u ZpA  , x?|??|?@%@@\@ 
DC?!nCH@@ @ @*?l?w+?l?x@@ Y@B@@A@B@@B@  , 4??@@
XAB  , T9?A?R:?A?k@@
^AX!nBB@@ @ @C?A?MD?A?N@@ X@B@@A@B@@B  , (N>?O>?'@@
sAm!nA8@@ @ @X>?Y>?@@ W@B@@A@B@@B̠  , c>>d>>@@@Z@ 
BA@  ,  
@
AA٠  , Ͱp>>q>>@@
AAߠ  , Ӱv>>w>>]@@@\@ 
A&cbname@r@@ @ @;;;;@@ V@B@@AC@@@AB@@C@  , =>>>@@
AC@  , ====@@@\@ \@ y
ÐB$C@  , ====@@@\@ 
͐C.#C@  , |=w=~=w=@@@\@ 
אB8-C@  , `='=.='=u@@@\@ 
AB7C@  , H====%@@@\@ a
AL"AC@  , 0)<<<=@@@\@ /
AV,KC@  , 3<<<<@@@\@ 
B`6UC@  , =<k<r<k<@@@\@ 	Aj@_C@  , G</<6</<i@@@\@ aBtJiC@  , Q;;;<-@@@\@ B~TsC@  , [;;;;@@@\@ 'C^}C@  , e
u@@+AaCu  , \i;;
;;L@@@\@ 5C0!n?@@ @ @:t::t:@@| Uw@B@@A@B@@B@  , <%::&:;@/@@\@ NBB@  ,  /::0::@9@@\@ :XC#B@  , 
9;N;@@]A'B  , >9:?9::@H@@\@ gCb!n>:@@ @ @N9d9zO9d9{@@ T@B@@A@B@@B@  , X99Y99@b@@\@ 5BB@  , b99c99@l@@\@ C$B@  , ɰ
l:<:s@@A(Bڠ  , Tΰq88r896@{@@\@ C!n<@@ @ @8888@@ R%count=@@ @ @8888@@ S@B@@AC@@@AB@@C@  , 8&989c@@A 
C  , 8888@@AA  , 8888@@AA  , 
*A@ A  , BB BBb@@Aʠ!nJ@@ @ @ABAB@@ _@B@@AKA@@B@@BB  , x BcBnBcBp@@A@@A@@A	  , (
fA@#A  , +BBC(C1@AA@)(@@  , 0BBBB@@@\@ A3@NA@@A@hB@@A@A@  , @C(C8@@@
 =
A@  , DCCCC'@@A
!nL@@\@ 
\@ @CCCC@@T `O@B@@AMA@@B@@BA  , ^3A#@
Y@@A@@A  , c CC CC@@+A
%&cbnameO@@ @ @ CC CC@@q al@pB@@AC@@PA@@AB@@CB  , t~!CC"CC@@FA
?|@@A@@A	  , 	AK@
DA  , ,D;DF-D;DH@@QA
J@3RA@@A@@AB  , 7CD8CD:@@\A
V&cbnameQ.@@ @  @ACD
BCD@@ b@B@@AC@@@AB@@C  , >Aq@
j A  , REESEE@\@@\@ 
{B
w!nU@@ @ @aEEbEE@@ e@B@@AkVA@@B@B@@A@B@  , ̰oEEpEE@y@@\@ BB@  , |ְ
yEF@@A!BB  , dܰFF FF"@@A
ڰ@@A@A	  , A@
A  , <JmJ<JmJ@@A
@_A@@A@@AS  , 6ItI6ItI@@A
!nY	@@ @ ]@ @6ItI6ItI@@ hA  , GKKGKK@@A
A  , FKKFKK@@A
	$A   , EKqKEKqK@@A
*A&  , DK^KnDK^Kp@@A
0A,  , CKK,CKK]@@A
!n^	\@@ @ I@CKK'CKK(@@+ l&@B@@AC@B@@BA  , 2BKKBKK@@A
!n]	W@@ @ F@BKKBKK@@@ k;VAR  , |CAJJAJK @@
AA\AX  , pI@JJ@JJ@@
AGbA^  , TO?JJ?JJ@@
A!n\	@@ @ ;@>JJ>JJ@@] jX@B@@Au@B@@Bs  , <d=JJ=JJ@@
,A&b}Ay  , 0j
;JYJj;JYJl@@
2A,hA  , ,p:JJ(:JJ4@@@Z@ 
<B7sA@  , z
@
?A9uA  , } 9JJ!9JJ@@
EA?{A  , &8II'8IJ @@
KAF&cbname[@@ @  @07II17II@@ i@B@@AC@@@AB@@C  , >5I?IX?5I?Is@@
cA^!nX@@ @ 
@H5I?IOI5I?IP@@ g@B@@A@B@@B  , S3HHT3HI@]@@\@ h
|Bx!nW@@ @ @b2HHc2HH@@ f@B@@A@B@@B@  , xɰl4II>@@
ABݠ  , `ΰq1HHr1HH@@
AA  ,  
A
@A  , װzML)L;{ML)L=@@
Aհ@aA@@A@@AB  , LKKLKL(@@
A&cbname`|@@ @ @KKKKKK@@ m@B@@AC@@@AB@@C  , 
A
@ A  , R2R>RyR|@A	&Python.generate_python_methods_c.(fun)A@@@  , QQQR0@E@@Z@ ؐBWSL}L}@
@hA@@A@C@@B@@AB@A@  , `QQQQ@@@Z@ AA@  , H#QQQQ@@@Z@ A &A@  , 0-QQQQ@@@Z@ uA*0&A@  , 7QQQQ@@@Z@ CA4:0A@  ,  AQQQQ@@@Z@ A>D:A@  , K~QgQi~QgQ@@@Z@  AHNDA@  , U}QBQD}QBQe@@@Z@ *ARXNA@  , _|QQ|QQ@@@@Z@ {4A\bXA@  , i{PP
{PQ@@@Z@ I>AflbA@  , szPPzPP@ @@Z@ HApvlA@  , p} yPP!yPP@*@@Z@ RAzvA@  , X*xPP+xPP@4@@Z@ \AA@  , @4wPyP{5wPyP@>@@Z@ fAA@  , (>vPcPe?vPcPw@H@@Z@ OpAA@  , HuPXPZIuPXPa@R@@Z@ zAA@  , 
RtPLPNStPLPV@\@@Z@ AA@  , 
\sP3P5]sP3PJ@f@@Z@ AA@  , 
ðfrP%P'grP%P1@p@@Z@ AA@  , 
ͰpqP
PqqP
P#@z@@Z@ UAA@  , 
װzpOO{pOP@@@Z@ #AA@  , 
oOOoOO@@@Z@ 
AA@  , 
hnOOnOO@@@Z@ 
AA@  , 
PmO~OmO~O@@@Z@ 
ʐAA@  , 
8lO]O_lO]O|@@@Z@ 
[ԐAA@  , 
 	kO9O;kO9O[@@@Z@ 
)ސAA@  , 
jO.O0jO.O7@@@Z@ AA@  , iO!O#iO!O,@@@Z@ A A@  , 'hNNhNO@@@Z@ A$* A@  , 1gNNgNN@@@Z@ aA.4*A@  , ;fNmNofNmN@@@Z@ /A8>4A@  , EeN_NaeN_Nk@@@Z@ ABH>A@  , xOdN"N$dN"N]@@@Z@ $ALRHA@  , `YcMMcMN @@@Z@ .AV\RA@  , HcaMMaMM@@@Z@ g8A`f\A@  , 0m`MM`MM@@@Z@ 5BAjpfA@  , w_MM_MM@$@@Z@ LAtzpA@  ,  $^MM%^MM@.@@Z@ 
VA~zA@  , .]MM/]MM@8@@Z@ 
`AA@  , 8\MbMd9\MbM@B@@Z@ 
mjAA@  , B[MDMFC[MDM`@L@@Z@ 
;tAA@  , LZM&M(MZM&MB@V@@Z@ 
	~AA@  , VYM	MWYM	M$@`@@Z@ 	AA@  , p`XLM aXLM@j@@Z@ 	AA@  , XǰjWLLkWLL@t@@Z@ 	sAA@  , @ѰtVLLuVLL@~@@Z@ 	AAA@  , (۰~TLLTLL@@@Z@ 	-CA@  , 
@@@A@  , 
RVR\RVRx@@A$nameeX@@Z@ .Z@ !@R@RIR@RM@@ o"fnfX@@Z@ -Z@ "@R@ROR@RQ@@ p @B@@AC@@gA@@AB@~B@@A@CA  , 
A@@
@A@A  , 
ymmuQua@Z@@Z@ B7RR@@A@@A@MC@@`B@@AB@A@  , 
.ymmuQuT@A	#Python.generate_python_nbd_py.(fun)A@-,@@  , 
4^m^owmm@@@Z@ 3'A7A@  , 
>\|\~^S^j@@@Z@ '1B&A"A@  , 
tH\|\^S^V@AA@FE@@  , 
XM\B\D\B\z@@@Z@ @B5P1A@  , 
HW\B\N\B\p@A)A@UT@@  , 
,\ZZ \3\@@@@Z@ OBD_@A@  , 
f	Z[ 
\3\6@A8A@dc@@  , 
 kZZZZ@@@Z@ ^BSnOA@  , 	uZZ ZZ@AGA@sr@@  , 	zS=S?ZZ@'@@Z@ mAb}^A@  , 	'SS!(SS:@@@Z@ wClhA@  , 	
|@@{@okA@  , 	4ZDZJ5ZZ@@@\@ gB{+enum_prefixo1@@ @ @EZ"Z,FZ"Z7@@ t%enumsp/C@@ @ Π#intA@@ @ @ @ @@ @ @_Z"Z9`Z"Z>@@ u@)C@@AB@@kuA@@AB@@C@  , 	tʰmZDZTnZZ@AA@@@  , 	dϰ>rZZ@@A8CA  , 	P`A@а@@A@@A  , 	0ڰ}ZZ~ZZ@@AG$enumqK@@]@ 3]@ @ZVZcZVZg@@ v!ir#intA@@]@ ]@ @ZVZiZVZj@@ w$enums`@@ @ _@ @ZoZ}ZoZ@@ x@D-C@@A"B@@tA@@AB@xB@@A@DA  , 	,ZoZZoZ@AC=@@AB
@C  , 	!ZoZyG@@AECA  , ']A@"@@A@A  , ,[[[\#@@@\@ C+flag_prefixv@@ @ @[[[[@@B y%flagswˠ@@ @ @@ @ @ @ @@ @ @[[[[@@Z z$maskxf@@ @ ]@ @@ @  ]@ @[$[.[$[2@@l {g@9C@@A/B@@D@@A}A@@BC@@D@  , x[>[D[[@@@\@ 
NBL{D@  , %[>[N&[[@ATA@@@  , *\%\2@@XAUD@  , .[$[5/[$[:@A]A@@@  , 3[$[*
@@aA]&$@!@AB@@CA  , x3Ah@y@'@A@@A  , XA[[B[[@K@@^@ ytCu$flagy@@]@ e]@ @T[P[]U[P[a@@ |!iz#intA@@]@ ]@ @c[P[cd[P[d@@ }$flag{)@@ @ _@ @o[i[wp[i[{@@ ~˰@D-C@@A"B@@}|A@@AB@B@@AC@@B@D@  , <B[[@@A<DA  , 8[i[~[i[@ACC@@AB@C  , [i[s@@AKCA  , tA@@ @A@A  , \B\]\B\o@@A!n~k@@[@ [@ @\B\T\B\U@@ !i @@[@ [@ @\B\W\B\X@@ @B@@AC@@A@@AB@@CA  , $A@@@A@@A  , )]]^D^K@AA@'&@@  , .\\\]@@@\@ DC"ns@@[@ [@ .@\\\\@@E %ctxtsՠ@@[@ ,\@ @@[@ ]@ y@@[@  ]@ @[@ ]@ @@[@ \@ @[@ \@ @@[@ [@ /@\\\\@@s (ns_upper&stringO@@ @ 8]@ 6@!\\"\\@@ }@AB@@ANC@@D@@A/A@@BC@@D@  , `1^D^R@@_AZDA  , 7\\8\\@AfAa@@AB@@C  , xA\\@@oAiCA  , d\As@@@A@@A  , PL ^^M ^^<@A{A@@@  , <Q]]R]^@[@@]@ D$ctxtk@`]]#a]]'@@ &constsl@g]])h]]/@@ *ctxt_macro&stringO@@ @ ^@ @v]4]Bw]4]L@@ *ctxt_upperd@@ @ ^@ @]b]p]b]z@@ ް@&B@@A.C@@#D@@AE@@A@@ABC@B@@AC@@B@E@  ,  ]]]]@a@@^@ _@ E͐CIJ@  , S ^^C@@AM EA  , ]b]}]b]@AِAT(&@%@A"@BC @D  , ]b]l@@A]	DA  , ]4]O]4]^@AAd97@2@AB0@C  , "]4]>"@@AlCA  , (A@#@=@A;@A  , - ^^) ^^;@@A|!n@ ^^  ^^!@@9 !i@ ^^# ^^$@@@ ;@B@@AC@@A@@AB@@CA  , LA@G@@A@@A  , dQu3u9u3uA@@@\@ "T'AD$name@@[@ ![@ @zmmzmm@@p $args@@ @ @@ @ @zmmzmm@@~ 'optargs@@ @ @@ @ @+zmm,zmm@@ )shortdesc"@@ @ @6zmm7zmn@@ (longdesc-@@ @ @Azmn	Bzmn@@ $args@@ @ (]@ %*@ @ *@@ @ )]@ &@ @ ']@ @@ @ ]@ @b{nn"c{nn&@@ 'optargs9e@@ @ ]@ !@@ @ ]@ @@ @ ]@ @ @ ]@ j@@ @ i]@ e@q`qjq`qq@@ $argsI@@ @ ՠ@9@@ @ ]@ @@ @ @ @ ]@ @@ @ ]@ @rrrr @@ (longdesc&stringO@@ @  ]@  ~@s0s:s0sB@@ (longdesc@@ @  ]@  @s{ss{s@@  (longdesc%Utils+cache_value@@ @  ]@  @ssss@@1 ,@0B@@RJHF@@ABM+L<KC@@G@@AIE@@B A@@D@@ACD@sC@@B@@AB@M@  , LTttu u1@@@\@ !*CW+M@  , 0^tt
@A/A@[Z@@  ,  btptvtpt@@@\@ !_8Be9M@  , ltAtGtAtn@@@\@ !-BAoCM@  , vssst?@#@@\@  LC%yMM@  , #st"
@@@]@ ! ^@ !WB0XM@  , .uCuP@@\A4\MA  , 4ss5ss@AcA;dYTDI@L
  , =ss@@kABLA  , Cs{sDs{s@ArCIsfcDX@K
  , Ls{s@@zAPKA  , |Rs0sESs0sw@ACWsrDg@J
  , \[ss%\ss.@e@@\@  SAd
J@  , D°erRrXfss@@@\@ 1CnJ@  , (̰orRrd
@AA@@@  , аsr5r;tr5rP@}@@\@ B|%J@  ,  ڰ
O@@A(JA  , ߰rr#rr1@ABް@@@ABD@I  , rr`@@A	IA  , qtq|qr@AB@BCD@H  , qtqqr@AA@@@  ,   q`qfv@@AHA  ,  |n)n1qNq\@AؐB @@@ABD@G  ,  |n)n:qNqW@AA@  @@  ,  {nn@@A GA  , h A@ @@A@A  , ` !ooop@AA@  @@  , T &@Aɠ!nu@@ @ `@ @oooo@@ 4  0@CB@@AA@@B@@CT  , < Bq-qFq-qM@AA@ @ ?@@  , 0 G@A!n0@@ @ @q-qAq-qB@@ R  M@B@@A@B@@B  ,  Yq
q%q
q,@A+A@ W V@@  ,  ^@-A !n@@ @ @q
q 	q
q!@@ i  d@B@@A1@B@@B/  ,  ppqpq@ABA@ n m@@  ,  u@DA!n/@@ @ 	@pq  pq@@   {@B@@AH@B@@BF  ,  *pp+pp@AYA@  @@  ,  @[A.!n#@@ @ @7pp8pp@@   @B@@A`@B@@B^  ,  BppCpp@AqA@  @@  ,  @sAF!n@@ @ @NppOpp@@   @B@@Aw@B@@Bu  ,  YppZpp@AA@  @@  ,  @A]!n@@ @  @eppfpp@@   @B@@A@B@@B  , | Ͱpp^pqp^p@AA@  @@  , p @At!n@@ @ @|p^pz}p^p{@@   ذ@B@@A@B@@B  , \ p?pVp?p]@AA@  @@  , P @A!n@@ @ @p?pQp?pR@@   @B@@A@B@@B  , < p!p7p!p>@AA@  @@  , 0! @A!n@@ @ @p!p2p!p3@@! !@B@@A@B@@BѠ  , !pppp @AA@!!@@  , !@A!n@@ @ @pppp@@!" !@B@@A@B@@B  , !)oooo@AA@!'!&@@  , !.@AР!n@@ @ @oooo@@!9 !4@B@@A@B@@B  , !@oooooo@B!@@@A@@A@  , !I	@A!DA  , !LoLogoLon@AA@!J!I@@  , !Q@ A!n@@ @ @oLo^oLo_@@!\ !W@B@@A$@B@@B"  , !c oo? ooK@A5A@!a!`@@  , !h@7A
&cbname@@ @ @ oo3 oo9@@!s !n@rB@@AC@@>@AB@@C<  , x!}  no !no@AOA@!{!z@@  , l!@QA$!n*@@ @ @ ,no -no
@@! !@B@@AU@B@@BS  , X! 7nn 8nn@AfA@!!@@  , L!@hA;!n
@@ @ @ Cnn Dnn@@! !@B@@Al@B@@Bj  , 8! Nnn Onn@A}A@!!@@  , ,!@AR%count@@ @ @ Znn [nn@@! !@B@@A@B@@B  , !° enmn fnmn@AA@!!@@  , !@Ai!n@@ @ @ qnmn rnmn@@! !Ͱ@B@@A@B@@B  , !ٰ |~nOne }~nOnl@AA@!!@@  , !@A!n8@@ @ @ ~nOn` ~nOna@@! !@B@@A@B@@B  , !A@!A  , x! qq qq@AA@!!@@  , l!@A!n@@ @ @ qq qq@@" !@B@@AA@@B@@BB  , T"
 qq qq@AA@""
@@  , H"@A&cbname@@ @ v@ qq qq@@" "@B@@AC@@@AB@@C  , "',A@""@"@A@@A   , ", rr ss@AA@"*")@@  ,  "1 rory ror@ @@_@ JA"4@A@@A@YB@@A@A@  ,  "A ss@@@">
A@  ,  "E rr rr@@A!n @@_@  _@ @ rr rr@@"U "P@TB@@AC@@ A@@AB@@CB  ,  "b!rr!rs@@4A!n@!
rr!rr@@"n 'default @@_@  #_@ @!rr!rr@@"z "u@%@E@@ABD'&C@@E#  ,  p"XAS@("@*@A@@A(  ,  \"!,tt!-u u+@A[A@""@@  ,  H"!1tt!2tt@!;@@_@ !dA="@ =A@@A@B@@A@A@  , p"!Au u0@@o@G"
A@  , T"!Etu!Ftu@@tAM!n!@@_@ "5_@ !@!Qtu!Rtu
@@" "@B@@A [A@@B@@BA  , H"3A@c"@@A@@A@         
   5/tmp/libnbd/generator@    -C      ( &PythonPG$@K", )Python.mltutuA@B@@@@$, %s@@X%Utils`@K'self._ott ttA@@@'self._o
@@t|,Stdlib__List `@K", ;rr<rsA@B@L}B@@@@@@', %s=%s@@ D @K", arrbrrA@B@@@@$, %s@@ Ġ` ̠@K$self}ror|~rorA@@@$self
@@ ࠠw 蠠^@$Noneqqqq@@@D@!0qqqq@@@h@oooooo@@Z@̠.Assert_failure\Ԡؠ&Stdlib𠠐@K(    def r5r>r5rKA@B@Lh@@@@+    def %s(@@8@K#):
ss(ss.A@@@#):

@@HP)C<nbd.\1>s0scs0sm@@d#Strp%C<\1>s{ss{s@@!
!st2"st4@@.Stdlib__String@K0        u'''▶ 3ss4stA@B@K"

@B@K$'''
@@@@@@@:        u'''▶ %s

%s'''
 @@ؠCࠠ@K	!        self._check_not_closed()
`tAtJatAtnA@@@	!        self._check_not_closed()

@@𠠑Z@K9        return libnbdmod.wtptyxtptA@B@Lh@@@@<        return libnbdmod.%s(@@{~@@K")
u3u<u3uAA@@@")

@@PX@LJ@@!
uCuLuCuPA@@hp@B@K# =  ^^, ^^7A@D@@@LJ@@@@@(%s = %d
@@̠ࠠ@K(CONTEXT_]]]]A@B@L _B@@@@@@-CONTEXT_%s_%s@@.Stdlib__Printf@B@K$ = "']](]]A@B@LzB@K""
@@@@@@@@-%s = "%s:%s"
@@$6,T(|@K*NAMESPACE_Y\\Z\\A@B@K$ = "@B@K#:"
@@@@@@@5NAMESPACE_%s = "%s:"
 @@iPĠ@B@K# = \B\`\B\kA@D@@@LJ@@@@@(%s = %d
@@𠠑@B@L _B@@@@@%%s_%s[i[[i[A@@$,@B@K% = 0x[[[[A@DF@BB@@LJ@@@@@,%s = 0x%02x
@@DL@B@K*_MASK = 0x[[[\A@DF@BB@@LJ@@@@@1%s_MASK = 0x%02x
@@̠Ԡ@LJ@@!
@\%\.A\%\2A@@䠠3젠@B@L _B@@@@@%%s_%s`ZoZaZoZA@@	P	 @B@K# = uZZvZZA@D@@@LJ@@@@@(%s = %d
@@	8	@f	x@LJ@@!
ZZZZA@@			@K
  '''
Python bindings for libnbd

import nbd
h = nbd.NBD()
h.connect_tcp("localhost", "nbd")
buf = h.pread(512, 0)

Read the libnbd(3) man page to find out how to use the API.
'''

import contextlib
import libnbdmod

# Re-export Error exception as nbd.Error, adding some methods.
from libnbdmod import Error

Error.__doc__ = '''
Exception thrown when the underlying libnbd call fails.

This exception has three properties to query the error.  Use
the .string property to return a printable string containing
the error message.  Use the .errnum property for the associated
numeric error value (which may be 0 if the error did not
correspond to a system call failure), or the .errno property to
return a string containing the Python errno name if one is known
(which may be None if the numeric value does not correspond to
a known errno name).
'''

Error.string = property(lambda self: self.args[0])


def _errno(self):
    import errno
    try:
        return errno.errorcode[self.args[1]]
    except KeyError:
        return None


Error.errno = property(_errno)

Error.errnum = property(lambda self: self.args[1])


def _str(self):
    if self.errno:
        return "S=SBZZA@LeK#s (@LeK$s)" @LeK	5 (self.string, self.errno)
    else:
        return "$@LeK#s" /@LeK	 self.string


Error.__str__ = _str


class ClosedHandle(ValueError):
    '''This exception is thrown when any method is called on an
    nbd handle after you have called h.close() on the same handle.'''
    pass


:@QB c@K
  ontextlib.contextmanager
def nbd():
    '''
    This is a context manager function.  Python will close the handle
    automatically even if the body throws an exception:

    with nbd.nbd() as h:
        # use the handle 'h'
    '''
    h = NBD()
    yield h
    h.close()


G@@@@@@@@@@@@@@@
  '''
Python bindings for libnbd

import nbd
h = nbd.NBD()
h.connect_tcp("localhost", "nbd")
buf = h.pread(512, 0)

Read the libnbd(3) man page to find out how to use the API.
'''

import contextlib
import libnbdmod

# Re-export Error exception as nbd.Error, adding some methods.
from libnbdmod import Error

Error.__doc__ = '''
Exception thrown when the underlying libnbd call fails.

This exception has three properties to query the error.  Use
the .string property to return a printable string containing
the error message.  Use the .errnum property for the associated
numeric error value (which may be 0 if the error did not
correspond to a system call failure), or the .errno property to
return a string containing the Python errno name if one is known
(which may be None if the numeric value does not correspond to
a known errno name).
'''

Error.string = property(lambda self: self.args[0])


def _errno(self):
    import errno
    try:
        return errno.errorcode[self.args[1]]
    except KeyError:
        return None


Error.errno = property(_errno)

Error.errnum = property(lambda self: self.args[1])


def _str(self):
    if self.errno:
        return "%%s (%%s)" %% (self.string, self.errno)
    else:
        return "%%s" %% self.string


Error.__str__ = _str


class ClosedHandle(ValueError):
    '''This exception is thrown when any method is called on an
    nbd handle after you have called h.close() on the same handle.'''
    pass


@contextlib.contextmanager
def nbd():
    '''
    This is a context manager function.  Python will close the handle
    automatically even if the body throws an exception:

    with nbd.nbd() as h:
        # use the handle 'h'
    '''
    h = NBD()
    yield h
    h.close()


N@@		Ƞ#API	ؠ	

 
0
L
\
x@K	

class Buffer(object):
    '''Asynchronous I/O persistent buffer'''

    def __init__(self, len):
        '''Allocate an uninitialized AIO buffer used for nbd.aio_pread.'''
        self._o = libnbdmod.alloc_aio_buffer(len)

    -^m^r.wmmA@QB c@K
  lassmethod
    def from_buffer(cls, buf):
        '''Create an AIO buffer that shares an existing buffer-like object.

        Because the buffer is shared, changes to the original are visible
        to nbd.aio_pwrite, and changes in nbd.aio_pread are visible to the
        original.
        '''
        self = cls(0)
        # Ensure that buf is already buffer-like
        with memoryview(buf):
            self._o = buf
        self._init = True
        return self

    @QB c@K
  lassmethod
    def from_bytearray(cls, ba):
        '''Create an AIO buffer from a bytearray or other buffer-like object.

        If ba is not a buffer, it is tried as the parameter to the
        bytearray constructor.  Otherwise, ba is copied.  Either way, the
        resulting AIO buffer is independent from the original.
        '''
        return cls.from_buffer(bytearray(ba))

    def to_buffer(self):
        '''Return a shared view of the AIO buffer contents.

        This exposes the underlying buffer; changes to the buffer are
        visible to nbd.aio_pwrite, and changes from nbd.aio_pread are
        visible in the buffer.
        '''
        if not hasattr(self, '_init'):
            self._o = bytearray(len(self._o))
            self._init = True
        return self._o

    def to_bytearray(self):
        '''Copy an AIO buffer into a bytearray.

        This copies the contents of an AIO buffer to a new bytearray, which
        remains independent from the original.
        '''
        if not hasattr(self, '_init'):
            return bytearray(len(self._o))
        return bytearray(self._o)

    def size(self):
        '''Return the size of an AIO buffer.'''
        return len(self)

    def __len__(self):
        '''Return the size of an AIO buffer.'''
        return len(self._o)

    def is_zero(self, offset=0, size=-1):
        '''Returns true if and only if all bytes in the buffer are zeroes.

        Note that although a freshly allocated buffer is uninitialized,
        this will report it as all zeroes, as it will be force-initialized
        to zero before any code that can access the buffer's contents.

        By default this tests the whole buffer, but you can restrict
        the test to a sub-range of the buffer using the optional
        offset and size parameters.  If size = -1 then we check from
        offset to the end of the buffer.  If size = 0, the function
        always returns true.  If size > 0, we check the interval
        [offset..offset+size-1].
        '''
        return libnbdmod.aio_buffer_is_zero(self._o, offset, size,
                                            hasattr(self, '_init'))


class NBD(object):
    '''NBD handle'''

    def __init__(self):
        '''Create a new NBD handle.'''
        self._o = libnbdmod.create()

    def __del__(self):
        '''Close the NBD handle and underlying connection.'''
        if self._o:
            libnbdmod.close(self._o)
            self._o = None

    def _check_not_closed(self):
        if not self._o:
            raise ClosedHandle("libnbd: method called on closed handle")

    def close(self):
        '''Explicitly close the NBD handle and underlying connection.

        The handle is closed implicitly when its reference count goes
        to zero (eg. when it goes out of scope or the program ends).

        This call is only needed if you want to force the handle to
        close now.  After calling this, the program must not call
        any method on the handle (except the implicit call to
        __del__ which happens when the final reference is cleaned up).
        '''
        self._check_not_closed()
        libnbdmod.close(self._o)
        self._o = None

@@@@@@@
  U

class Buffer(object):
    '''Asynchronous I/O persistent buffer'''

    def __init__(self, len):
        '''Allocate an uninitialized AIO buffer used for nbd.aio_pread.'''
        self._o = libnbdmod.alloc_aio_buffer(len)

    @classmethod
    def from_buffer(cls, buf):
        '''Create an AIO buffer that shares an existing buffer-like object.

        Because the buffer is shared, changes to the original are visible
        to nbd.aio_pwrite, and changes in nbd.aio_pread are visible to the
        original.
        '''
        self = cls(0)
        # Ensure that buf is already buffer-like
        with memoryview(buf):
            self._o = buf
        self._init = True
        return self

    @classmethod
    def from_bytearray(cls, ba):
        '''Create an AIO buffer from a bytearray or other buffer-like object.

        If ba is not a buffer, it is tried as the parameter to the
        bytearray constructor.  Otherwise, ba is copied.  Either way, the
        resulting AIO buffer is independent from the original.
        '''
        return cls.from_buffer(bytearray(ba))

    def to_buffer(self):
        '''Return a shared view of the AIO buffer contents.

        This exposes the underlying buffer; changes to the buffer are
        visible to nbd.aio_pwrite, and changes from nbd.aio_pread are
        visible in the buffer.
        '''
        if not hasattr(self, '_init'):
            self._o = bytearray(len(self._o))
            self._init = True
        return self._o

    def to_bytearray(self):
        '''Copy an AIO buffer into a bytearray.

        This copies the contents of an AIO buffer to a new bytearray, which
        remains independent from the original.
        '''
        if not hasattr(self, '_init'):
            return bytearray(len(self._o))
        return bytearray(self._o)

    def size(self):
        '''Return the size of an AIO buffer.'''
        return len(self)

    def __len__(self):
        '''Return the size of an AIO buffer.'''
        return len(self._o)

    def is_zero(self, offset=0, size=-1):
        '''Returns true if and only if all bytes in the buffer are zeroes.

        Note that although a freshly allocated buffer is uninitialized,
        this will report it as all zeroes, as it will be force-initialized
        to zero before any code that can access the buffer's contents.

        By default this tests the whole buffer, but you can restrict
        the test to a sub-range of the buffer using the optional
        offset and size parameters.  If size = -1 then we check from
        offset to the end of the buffer.  If size = 0, the function
        always returns true.  If size > 0, we check the interval
        [offset..offset+size-1].
        '''
        return libnbdmod.aio_buffer_is_zero(self._o, offset, size,
                                            hasattr(self, '_init'))


class NBD(object):
    '''NBD handle'''

    def __init__(self):
        '''Create a new NBD handle.'''
        self._o = libnbdmod.create()

    def __del__(self):
        '''Close the NBD handle and underlying connection.'''
        if self._o:
            libnbdmod.close(self._o)
            self._o = None

    def _check_not_closed(self):
        if not self._o:
            raise ClosedHandle("libnbd: method called on closed handle")

    def close(self):
        '''Explicitly close the NBD handle and underlying connection.

        The handle is closed implicitly when its reference count goes
        to zero (eg. when it goes out of scope or the program ends).

        This call is only needed if you want to force the handle to
        close now.  After calling this, the program must not call
        any method on the handle (except the implicit call to
        __del__ which happens when the final reference is cleaned up).
        '''
        self._check_not_closed()
        libnbdmod.close(self._o)
        self._o = None

$@@
A
K
+
@K	
package_name = NBD().get_package_name()
__version__ = NBD().get_version()

if __name__ == "__main__":
    import nbdsh

    nbdsh.shell()
duwu|evv
A@@@	
package_name = NBD().get_package_name()
__version__ = NBD().get_version()

if __name__ == "__main__":
    import nbdsh

    nbdsh.shell()

@@
Р^
ؠa@K;#define PY_SSIZE_T_CLEAN 1
~VLLVLLA@@@;#define PY_SSIZE_T_CLEAN 1

@@,x4@K4#include <Python.h>
WLLWLLA@@@4#include <Python.h>

@@DL@LJ@@!
XLMXLMA@@\d@K3#include <stdio.h>
YM	MYM	M$A@@@3#include <stdio.h>

@@t|@K4#include <stdlib.h>
ZM&M+ZM&MBA@@@4#include <stdlib.h>

@@@K4#include <stdint.h>
[MDMI[MDM`A@@@4#include <stdint.h>

@@@K5#include <stdbool.h>
\MbMg\MbMA@@@5#include <stdbool.h>

@@Ġ@LJ@@!
$]MM%]MMA@@Ԡܠ@K4#include <libnbd.h>
4^MM5^MMA@@@4#include <libnbd.h>

@@젠.@LJ@@!
Q_MMR_MMA@@D@K5#include <methods.h>
a`MMb`MMA@@@5#include <methods.h>

@@[$@LJ@@!
~aMMaMMA@@4q<@K	8/* This is passed to *_wrapper as the user_data pointer
cMMcMN A@@@	8/* This is passed to *_wrapper as the user_data pointer

@@LT@K	3 * and freed in the free_user_data function below.
dN"N'dN"N]A@@@	3 * and freed in the free_user_data function below.

@@dl@K$ */
eN_NdeN_NkA@@@$ */

@@|@K3struct user_data {
fNmNrfNmNA@@@3struct user_data {

@@@K	>  PyObject *fn;    /* Optional pointer to Python function. */
gNNgNNA@@@	>  PyObject *fn;    /* Optional pointer to Python function. */

@@@K	E  PyObject *view;  /* Optional PyMemoryView of persistent buffer. */
hNNhNOA@@@	E  PyObject *view;  /* Optional PyMemoryView of persistent buffer. */

@@Ġ̠@K#};
iO!O&iO!O,A@@@#};

@@ܠ䠠@LJ@@!
5jO.O36jO.O7A@@(@K:static struct user_data *
EkO9O>FkO9O[A@@@:static struct user_data *

@@
?
@K7alloc_user_data (void)
\lO]Ob]lO]O|A@@@7alloc_user_data (void)

@@
$V
,@K"{
smO~OtmO~OA@@@"{

@@
<m
D@K	5  struct user_data *data = calloc (1, sizeof *data);
nOOnOOA@@@	5  struct user_data *data = calloc (1, sizeof *data);

@@
T
\@K6  if (data == NULL) {
oOOoOOA@@@6  if (data == NULL) {

@@
l
t@K7    PyErr_NoMemory ();
pOOpOPA@@@7    PyErr_NoMemory ();

@@

@K1    return NULL;
qP
PqP
P#A@@@1    return NULL;

@@

@K$  }
rP%P*rP%P1A@@@$  }

@@

@K/  return data;
sP3P8sP3PJA@@@/  return data;

@@
̠
Ԡ@K"}
tPLPQtPLPVA@@@"}

@@
䠠
젠@LJ@@!
1uPXP]2uPXPaA@@
$@K,static void
AvPcPhBvPcPwA@@@,static void

@@;@K	!free_user_data (void *user_data)
XwPyP~YwPyPA@@@	!free_user_data (void *user_data)

@@,R4@K"{
oxPPpxPPA@@@"{

@@DiL@K	&  struct user_data *data = user_data;
yPPyPPA@@@	&  struct user_data *data = user_data;

@@\d@LJ@@!
zPPzPPA@@t|@K.  if (data) {
{PP{PQA@@@.  if (data) {

@@@K	5    PyGILState_STATE py_save = PyGILState_Ensure ();
|QQ|QQ@A@@@	5    PyGILState_STATE py_save = PyGILState_Ensure ();

@@@K;    Py_XDECREF (data->fn);
}QBQG}QBQeA@@@;    Py_XDECREF (data->fn);

@@Ġ@K=    Py_XDECREF (data->view);
~QgQl~QgQA@@@=    Py_XDECREF (data->view);

@@Ԡܠ@K	"    PyGILState_Release (py_save);
QQQQA@@@	"    PyGILState_Release (py_save);

@@젠	@K1    free (data);
&QQ'QQA@@@1    free (data);

@@ @K$  }
=QQ>QQA@@@$  }

@@7$@K"}
TQQUQQA@@@"}

@@4N<@LJ@@!
qQQrQQA@@LdTndNttT@K2  free_user_data (LKKLKL!A@B@K-_user_data);
@@@@@	!  free_user_data (%s_user_data);
@@ܠ䠠@K&  if (3HH3HIA@B@K&.obj)
@@@@@.  if (%s.obj)
@@|@K7    PyBuffer_Release (&4II4II<A@B@K#);
@@@@@<    PyBuffer_Release (&%s);
@@@K.  Py_XDECREF (5I?I[5I?IqA@B@K#);
@@@@@3  Py_XDECREF (%s);
@@Ƞ@K2  free_user_data (	8II	8IIA@B@K-_user_data);
@@@@@	!  free_user_data (%s_user_data);
@@𠠑	@	2	4:JJ(	5:JJ4@@:T@ @K1  Py_XDECREF (py_	J?JJ	K?JJA@B@K#);
@@@@@6  Py_XDECREF (py_%s);
@@X	O`@K	$  nbd_internal_py_free_string_list (	lCKK/	mCKK[A@B@K#);
@@@@@	)  nbd_internal_py_free_string_list (%s);
@@	q@K+  py_ret = 	EE	EEA@B@K";
@@@@@/  py_ret = %s;
@@	@K"  	EE	EEA@B@K) = NULL;
@@@@@-  %s = NULL;
@@	@K"  	CD	CD3A@B@K3_user_data = NULL;
@@@@@7  %s_user_data = NULL;
@@𠠑	@K"  	 CC	 CCA@B@K3_user_data = NULL;
@@@@@7  %s_user_data = NULL;
@@	@K", 
CC
CC%A@B@@@@$, %s@@
Ƞ@L h@@!h
8BB
9BBA@@ܠ
+䠠
@K	'  if (nbd_internal_py_init_aio_buffer (
KBB#
LBB`A@B@K1) < 0) goto out;
@@@@@	:  if (nbd_internal_py_init_aio_buffer (%s) < 0) goto out;
@@
P@K"  
m88
n89.A@B@K	( = PyByteArray_FromStringAndSize (NULL, @B@K#);
@@@@@@@	1  %s = PyByteArray_FromStringAndSize (NULL, %s);
 @@@
}H@K&  if (
989B
989aA@B@K4 == NULL) goto out;
@@@@@<  if (%s == NULL) goto out;
@@\
d@K"  
99
99A@B@K	&_view = nbd_internal_py_get_aio_view (@B@K/, PyBUF_READ);
@@@@@@@	;  %s_view = nbd_internal_py_get_aio_view (%s, PyBUF_READ);
 @@
@K'  if (!
99
99A@B@K1_view) goto out;
@@@@@:  if (!%s_view) goto out;
@@
@K%  py_9:9:6A@B@K< = PyMemoryView_GET_BUFFER (@B@K(_view);
@@@@@@@	-  py_%s = PyMemoryView_GET_BUFFER (%s_view);
 @@Ġ̠@K?  completion_user_data->view = 8:<:F9:<:qA@B@K'_view;
@@@@@	(  completion_user_data->view = %s_view;
@@ࠠ=蠠@K"  Z::[::A@B@K	&_view = nbd_internal_py_get_aio_view (@B@K0, PyBUF_WRITE);
@@@@@@@	<  %s_view = nbd_internal_py_get_aio_view (%s, PyBUF_WRITE);
 @@j@K'  if (!:::;
A@B@K1_view) goto out;
@@@@@:  if (!%s_view) goto out;
@@(0@K%  py_;;;;HA@B@K< = PyMemoryView_GET_BUFFER (@B@K(_view);
@@@@@@@	-  py_%s = PyMemoryView_GET_BUFFER (%s_view);
 @@HP@K?  completion_user_data->view = ;N;X;N;A@B@K'_view;
@@@@@	(  completion_user_data->view = %s_view;
@@dl@K"  ;;;;A@B@K-.user_data = @B@K	!_user_data = alloc_user_data ();
@@@@@@@	4  %s.user_data = %s_user_data = alloc_user_data ();
 @@@K&  if (%;;&;<&A@B@K>_user_data == NULL) goto out;
@@@@@	&  if (%s_user_data == NULL) goto out;
@@*@K<  if (!PyCallable_Check (py_G</<9H</<bA@B@K(_fn)) {
@@@@@	&  if (!PyCallable_Check (py_%s_fn)) {
@@РLؠ@K	&    PyErr_SetString (PyExc_TypeError,
i<k<uj<k<A@@@	&    PyErr_SetString (PyExc_TypeError,

@@蠠c𠠐@K	)                     "callback parameter <<<<A@B@K4 is not callable");
@@@@@	?                     "callback parameter %s is not callable");
@@@K.    goto out;
<=<=A@@@.    goto out;

@@$@K$  }
====%A@@@$  }

@@4<@K	A  /* Increment refcount since pointer may be saved by libnbd. */
='=1='=uA@@@	A  /* Increment refcount since pointer may be saved by libnbd. */

@@LT@K0  Py_INCREF (py_=w==w=A@B@K&_fn);
@@@@@8  Py_INCREF (py_%s_fn);
@@hp@K"  
	==
==A@B@K4_user_data->fn = py_@B@K%_fn;
@@@@@@@?  %s_user_data->fn = py_%s_fn;
 @@
%chunk
2==
3==@@1caml_string_equal@K	K  chunk_user_data->view = nbd_internal_py_get_aio_view (buf, PyBUF_WRITE);

C>>
D>>]A@@@	K  chunk_user_data->view = nbd_internal_py_get_aio_view (buf, PyBUF_WRITE);

@@
=Ġ@K	(  if (!chunk_user_data->view) goto out;

Z>_>k
[>_>A@@@	(  if (!chunk_user_data->view) goto out;

@@Ԡ
Tܠ@
l
n>>
o>>@@נT@@K"  
>?
>?#A@B@K'_u32 = @B@K";
@@@@@@@/  %s_u32 = %s;
 @@0
8@K"  
?A?U
?A?gA@B@K'_i64 = @B@K";
@@@@@@@/  %s_i64 = %s;
 @@\
d@K"  
?|?
?|?A@B@K9 = PyBytes_AS_STRING (py_@B@K#);
@@@@@@@	"  %s = PyBytes_AS_STRING (py_%s);
 @@
@K*  assert (????A@B@K+ != NULL);
@@@@@7  assert (%s != NULL);
@@@K	$  if (nbd_internal_py_get_sockaddr (-@@.@@XA@B@K#, &@B@K&_sa, &@B@K-_len) == -1)
$@@@@@@@@@	@  if (nbd_internal_py_get_sockaddr (%s, &%s_sa, &%s_len) == -1)
+@@젠H@K.    goto out;
e@i@sf@i@A@@@.    goto out;

@@_@K"  |@@}@@A@B@K	' = nbd_internal_py_get_string_list (py_@B@K#);
@@@@@@@	0  %s = nbd_internal_py_get_string_list (py_%s);
 @@@H@K'  if (!@@@AA@B@K,) goto out;
@@@@@5  if (!%s) goto out;
@@\d@K"  A7ALA7A^A@B@K'_u32 = @B@K";
@@@@@@@/  %s_u32 = %s;
 @@@K"  AcAxAcAA@B@K'_u64 = @B@K";
@@@@@@@/  %s_u64 = %s;
 @@@K"  %5U5_&5U5A@B@K-.user_data = @B@K	!_user_data = alloc_user_data ();
@@@@@@@	4  %s.user_data = %s_user_data = alloc_user_data ();
 @@5@K&  if (R55S55A@B@K>_user_data == NULL) goto out;
@@@@@	&  if (%s_user_data == NULL) goto out;
@@0W8@K)  if (py_t55u56A@B@K2_fn != Py_None) {
@@@@@=  if (py_%s_fn != Py_None) {
@@LyT@K>    if (!PyCallable_Check (py_6666JA@B@K(_fn)) {
@@@@@	(    if (!PyCallable_Check (py_%s_fn)) {
@@hp@K	(      PyErr_SetString (PyExc_TypeError,
6S6]6S6A@@@	(      PyErr_SetString (PyExc_TypeError,

@@@K	+                       "callback parameter 6666A@B@K4 is not callable");
@@@@@	A                       "callback parameter %s is not callable");
@@@K0      goto out;
6667 A@@@0      goto out;

@@@K&    }
77	77A@@@&    }

@@̠Ԡ@K	C    /* Increment refcount since pointer may be saved by libnbd. */
77! 77gA@@@	C    /* Increment refcount since pointer may be saved by libnbd. */

@@䠠젠@K2    Py_INCREF (py_67i7s77i7A@B@K&_fn);
@@@@@:    Py_INCREF (py_%s_fn);
@@ ;@K$    X77Y77A@B@K4_user_data->fn = py_@B@K%_fn;
@@@@@@@	!    %s_user_data->fn = py_%s_fn;
 @@ h(@K$  }
7777A@@@$  }

@@8@@K'  else
7777A@@@'  else

@@PX@K$    8 8
8 8FA@B@K	3.callback = NULL; /* we're not going to call it */
@@@@@	9    %s.callback = NULL; /* we're not going to call it */
@@lt@K"  8N8k8N8}A@B@K'_u32 = @B@K";
@@@@@@@/  %s_u32 = %s;
 @@@K", 484P484VA@B@@@@$, %s@@Ƞ@B@@@"%s$33%33A@@蠠𠠐@K(args, "O433533A@@@(args, "O
@@.0@K%:nbd_N33O34A@B@K(", &py_h@@@@@/:nbd_%s", &py_h@@DSL:p@K$&py_s22t22A@B@K#_fn@@@@@)&py_%s_fn@@u!O2222@@Ƞ@B@K$_u3223
23A@@@@&%s_u32
@@젠@LfB@@@@#&%s2223A@@!I2222@@ @LfB@@@@#&%sr-f-r-f-A@@!pr-f-yr-f-z@@@B@K&.buf, s--s--A@B@K$.len@@@@@@.%s.buf, %s.len@@蠠	𠠐@LfB@@@@#&%s4s--5s--A@@$"y*@s--As--@@@K7PyByteArray_AS_STRING (Mv. .1Nv. .QA@B@K#), @B@@@@@@>PyByteArray_AS_STRING (%s), %s@@LTT@LfB@@@@#&%su-.u-.A@@hop!nu-.u-.@@@K$&py_y./y./A@B@K#_fn@@@@@)&py_%s_fn@@!Oy..y..@@Ƞ@LfB@@@@#&%sz//Bz//GA@@𠠑!iz//6z//7@@@{/M/c{/M/o@@{V@ :(@B@K$_u32|// |//A@@@@&%s_u32
@@HP@LfB@@@@#&%s!|//"|//A@@dl!I-|//.|//@@|@B@K$_i64?~006@~00>A@@@@&%s_i64
@@6@LfB@@@@#&%sa~00%b~00*A@@QĠ!Lm~00n~00@@Ԡ@K;PyUnicode_FSConverter, &py_z0A0a{0A0A@B@@@@=PyUnicode_FSConverter, &py_%s@@v "O&0A0T0A0V@@ @K((size_t)0000A@B@@@@*(size_t)%s@@ 8 @@LfB@@@@#&%s0000A@@ T \!n0000@@ l@K4(struct sockaddr *)&1111:A@B@K%_sa, @B@K$_len@@@@@@@	!(struct sockaddr *)&%s_sa, %s_len @@  @LfB@@@@#&%s0001A@@  !O#00$00@@ Ƞ@LfB@@@@#&%s;1?1`<1?1eA@@ 𠠑+ !sG1?1TH1?1U@@!@K$&py_T1k1U1k1A@B@@@@&&py_%s@@!0P!8!Ol1k1m1k1@@!H@B@K$_u32~1212A@@@@&%s_u32
@@!lu!t@LfB@@@@#&%s1111A@@!!!I1111@@!@B@K$_u6422C22KA@@@@&%s_u64
@@!Ġ!̠@LfB@@@@#&%s222227A@@!ࠠ!蠠!K22&22'@@!@K#py_x..x..A@B@K*->buf, py_@B@K%->len@@@@@@@6py_%s->buf, py_%s->len @@"$",@LfB@@@@#&%s1x..2x..A@@"@!"H!O=x..>x..@@"X@LfB@@@@#&%sU}//V}//A@@"E"!ia}//b}//@@"@LfB@@@@#&%sy11z11A@@"Ƞi"Р!I1111@@"ࠠ@K,.callback = f,*,8f,*,hA@B@K	 _wrapper, .free = free_user_data@@@@@	..callback = %s_wrapper, .free = free_user_data@@"#@K4  struct user_data *b+l+vb+l+A@B@K3_user_data = NULL;
@@@@@	)  struct user_data *%s_user_data = NULL;
@@#@#H@K/  PyObject *py_c++c++A@B@K%_fn;
@@@@@6  PyObject *py_%s_fn;
@@#\#d@K&  nbd_d++d++A@B@K*_callback @B@K% = { @@@@@@@9  nbd_%s_callback %s = {  @@#|##@K$ };
(g,r,|)g,r,A@@@$ };

@@#"#Ƞ@K+  uint32_t ?i,,@i,,A@B@K&_u32;
@@@@@3  uint32_t %s_u32;
@@#蠠D#𠠐@K/  unsigned int aj,,bj,,A@B@K8; /* really uint32_t */
@@@@@	)  unsigned int %s; /* really uint32_t */
@@$f$@K,.callback = ?&&?&&A@B@K	 _wrapper, .free = free_user_data@@@@@	..callback = %s_wrapper, .free = free_user_data@@$$$,@K&  int /##/##A@B@K";
@@@@@*  int %s;
@@$$@K,  Py_buffer 1$$1$$?A@B@K4 = { .obj = NULL };
@@@@@	"  Py_buffer %s = { .obj = NULL };
@@$Ԡ$ܠ@K,  PyObject *3$_$i3$_$A@B@K) = NULL;
@@@@@7  PyObject *%s = NULL;
@@%%@K-  Py_ssize_t 4$$4$$A@B@K";
@@@@@1  Py_ssize_t %s;
@@% %(@K4  struct user_data *-;%%.;%&A@B@K3_user_data = NULL;
@@@@@	)  struct user_data *%s_user_data = NULL;
@@%P2%X@K/  PyObject *py_O<&&P<&&4A@B@K%_fn;
@@@@@6  PyObject *py_%s_fn;
@@%lT%t@K&  nbd_q=&=&Gr=&=&bA@B@K*_callback @B@K% = { @@@@@@@9  nbd_%s_callback %s = {  @@%%%@K$ };
@&&@&&A@@@$ };

@@%Р%ؠ@K&  int A&'A&'A@B@K";
@@@@@*  int %s;
@@%& @հB''&B''2@@BT@&-&@K+  uint32_t D'm'wD'm'A@B@K&_u32;
@@@@@3  uint32_t %s_u32;
@@&<&D@K/  unsigned int E''E''A@B@K8; /* really uint32_t */
@@@@@	)  unsigned int %s; /* really uint32_t */
@@&X&`@K*  int64_t 1H((2H((#A@B@K&_i64;
@@@@@2  int64_t %s_i64;
@@&6&@K,  long long SI('(1TI('(YA@B@K7; /* really int64_t */
@@@@@	%  long long %s; /* really int64_t */
@@&X&@K/  PyObject *py_uK(l(vvK(l(A@B@K) = NULL;
@@@@@:  PyObject *py_%s = NULL;
@@&Ġz&̠@K(  char *L((L((A@B@K) = NULL;
@@@@@3  char *%s = NULL;
@@&ࠠ&蠠@K-  Py_ssize_t N((N((A@B@K";
@@@@@1  Py_ssize_t %s;
@@''@K,  PyObject *P))P))(A@B@K";
@@@@@0  PyObject *%s;
@@'0'8@K:  struct sockaddr_storage Q),)6Q),)ZA@B@K%_sa;
@@@@@	!  struct sockaddr_storage %s_sa;
@@'L'T@K,  socklen_t R)^)h R)^)A@B@K&_len;
@@@@@4  socklen_t %s_len;
@@'h$'p@K.  const char *AS))BS))A@B@K";
@@@@@2  const char *%s;
@@'F'@K/  PyObject *py_cU))dU))A@B@K";
@@@@@3  PyObject *py_%s;
@@'h'@K)  char **V))V)*A@B@K) = NULL;
@@@@@4  char **%s = NULL;
@@'Ԡ'ܠ@K+  uint32_t Y*X*bY*X*xA@B@K&_u32;
@@@@@3  uint32_t %s_u32;
@@'(@K/  unsigned int Z*|*Z*|*A@B@K8; /* really uint32_t */
@@@@@	)  unsigned int %s; /* really uint32_t */
@@(( @K+  uint64_t \**\**A@B@K&_u64;
@@@@@3  uint64_t %s_u64;
@@(@(H@K5  unsigned long long 
]**]*+'A@B@K8; /* really uint64_t */
@@@@@	/  unsigned long long %s; /* really uint64_t */
@@(\(d@K,  PyObject */7$$07$%,A@B@K	); /* Buffer-like object or nbd.Buffer */
@@@@@	7  PyObject *%s; /* Buffer-like object or nbd.Buffer */
@@(4(@K,  PyObject *Q8%0%:R8%0%rA@B@K	!_view = NULL; /* PyMemoryView of @B@K$ */
@@@@@@@	5  PyObject *%s_view = NULL; /* PyMemoryView of %s */
 @@(a(@K0  Py_buffer *py_~9%x%9%x%A@B@K/; /* buffer of @B@K)_view */
@@@@@@@	,  Py_buffer *py_%s; /* buffer of %s_view */
 @@(Ƞ(Р@K&  int F''F''A@B@K";
@@@@@*  int %s;
@@((@K/  unsigned int W**-W**CA@B@K";
@@@@@3  unsigned int %s;
@@) )(@K>PyObject *self, PyObject *args&""&"#A@@@>PyObject *self, PyObject *args
@@)<)D@K+PyObject *
$""$""A@@@+PyObject *

@@) )@K0nbd_internal_py_%""%""A@B@K" (@@@@@4nbd_internal_py_%s (@@)")%)Ԡ@K")
B'##C'##!A@@@")

@@)䠠<)젠@K"{
Y(###(Z(###-A@@@"{

@@)S*@K2  PyObject *py_h;
p)#/#4q)#/#IA@@@2  PyObject *py_h;

@@*j*@K8  struct nbd_handle *h;
*#K#P*#K#kA@@@8  struct nbd_handle *h;

@@*,*4!C*H@K"  +#m#r+#m#A@B@K& ret;
@@@@@*  %s ret;
@@*X*`@K;  PyObject *py_ret = NULL;
,##,##A@@@;  PyObject *py_ret = NULL;

@@*p*x**@LJ@@!
l--
l--A@@*Р*ؠ*+ 6+8@K9  if (!PyArg_ParseTuple (3N3S3N3nA@@@9  if (!PyArg_ParseTuple (
@@+H+P+@K#))
4l4q4l4wA@@@#))

@@++@K.    goto out;
24y4~34y4A@@@.    goto out;

@@+,+@K9  h = get_handle (py_h);
I44J44A@@@9  h = get_handle (py_h);

@@+ĠC+̠@K4  if (!h) goto out;
`45a45A@@@4  if (!h) goto out;

@@+ܠZ+䠠A,D,,@LJ@@!
AAAAA@@,<v,D],h@K:  Py_BEGIN_ALLOW_THREADS;
B{BB{BA@@@:  Py_BEGIN_ALLOW_THREADS;

@@,x,@K,  ret = nbd_BBBBA@B@K" (@@@@@0  ret = nbd_%s (@@,,,Ƞ@K#);
C;C@C;CFA@@@#);

@@,ؠ,ࠠ@K8  Py_END_ALLOW_THREADS;
CHCMCHChA@@@8  Py_END_ALLOW_THREADS;

@@,𠠑,--@h-`@
DD
DD@@
}@-\-@K-  if (ret == 	DpDw	DpDA@B@K$) {
@@@@@3  if (ret == %s) {
@@-!-Ġ@K8    raise_exception ();
>DD?DDA@@@8    raise_exception ();

@@-Ԡ8-ܠ@K.    goto out;
UDEVDEA@@@.    goto out;

@@-젠O-@K$  }
l
EEm
EE&A@@@$  }

@@.f.M.<@K	%  py_ret = ret ? Py_True : Py_False;
FdFnFdFA@@@	%  py_ret = ret ? Py_True : Py_False;

@@..@K6  Py_INCREF (py_ret);
FFFFA@@@6  Py_INCREF (py_ret);

@@..Ƞ@K	'  py_ret = PyUnicode_FromString (ret);
 FF FGA@@@	'  py_ret = PyUnicode_FromString (ret);

@@.ࠠ.蠠@K4  py_ret = Py_None;
"GG "GG7A@@@4  py_ret = Py_None;

@@/ /@K6  Py_INCREF (py_ret);
#G9GC#G9G\A@@@6  Py_INCREF (py_ret);

@@// @K	'  py_ret = PyUnicode_FromString (ret);
)H;HE)H;HoA@@@	'  py_ret = PyUnicode_FromString (ret);

@@/8/@@K.  free (ret);
*HqH{*HqHA@@@.  free (ret);

@@/P
/X@K	"  py_ret = PyLong_FromLong (ret);
'%GG(%GGA@@@	"  py_ret = PyLong_FromLong (ret);

@@/p!/x@K	&  py_ret = PyLong_FromLongLong (ret);
>'GH ?'GH)A@@@	&  py_ret = PyLong_FromLongLong (ret);

@@/8/@LJ@@!
[-HH\-HHA@@/N/@K& out:
k.HHl.HHA@@@& out:

@@/e/ȠL/젠O0@K1  return py_ret;
OLKLPOLKLdA@@@1  return py_ret;

@@0 0(@K"}
PLfLkPLfLpA@@@"}

@@080@@LJ@@!
QLrLwQLrL{A@@0P0X@K1  Py_XDECREF (py_A@B@K#);
@@@@@6  Py_XDECREF (py_%s);
@@1,14@K1  Py_XDECREF (py_  A@B@K#);
@@@@@6  Py_XDECREF (py_%s);
@@1T1\@K)  if (py_ < F < XA@B@K$) {
@@@@@/  if (py_%s) {
@@11@K1    PyObject *py_2 \ f3 \ A@B@K	"_ret = PyObject_GetAttrString (py_@B@K,, "value");
@@@@@@@	C    PyObject *py_%s_ret = PyObject_GetAttrString (py_%s, "value");
 @@2B2@K%    *_  `  A@B@K5 = PyLong_AsLong (py_@B@K'_ret);
@@@@@@@	%    *%s = PyLong_AsLong (py_%s_ret);
 @@24o2<@K2    Py_DECREF (py_   !A@B@K'_ret);
@@@@@;    Py_DECREF (py_%s_ret);
@@2P2X@K2    Py_DECREF (py_!!"!!<A@B@K#);
@@@@@7    Py_DECREF (py_%s);
@@2l2t@K$  }
!@!J!@!QA@@@$  }

@@22@!!!!@@g@2:2@K",  4 :A@B@@@@$, %s@@2Ƞ2Р@B@@@"%s    A@@2𠠑 2@K""( ,  - A@@@""(
@@3 &3 
38@K")" F  G A@@@")"
@@3H @3P '3t@K#py_ `  a A@B@@@@%py_%s@@4<\4D!O x   y @@4T@K#py_  ?  FA@B@@@@%py_%s@@4x4!O  3  4@@4!i  I]  I^@@4!L  cy  cz@@4ؠ@K#py_    A@B@@@@%py_%s@@5t5|!O    @@5!s    @@5!I    @@5Ԡ!K    @@5@   1  =@@ 䠐i@6 O6@K&"KK", ! ! A@B@K#[i_@B@K*].length, @B@K#[i_$@B@K'].flags/@@@@@@@@@@@	%"KK", %s[i_%s].length, %s[i_%s].flags6@@6<!56D@K%  py_!R !S A@B@K/ = PyList_New (@B@K#);
@@@@@@@;  py_%s = PyList_New (%s);
 @@7$!b7,@K*  if (!py_! ! 	A@B@K	#) { PyErr_PrintEx (0); goto out; }
@@@@@	/  if (!py_%s) { PyErr_PrintEx (0); goto out; }
@@7@!7H@K+  size_t i_! 
! 
)A@B@K";
@@@@@/  size_t i_%s;
@@7\!7d@K)  for (i_! -7! -`A@B@K( = 0; i_@B@K# < @B@K&; ++i_$@B@K$) {
/@@@@@@@@@@@	&  for (i_%s = 0; i_%s < %s; ++i_%s) {
6@@7!7@K3    PyObject *py_e_" lv" lA@B@K2 = Py_BuildValue (@@@@@	'    PyObject *py_e_%s = Py_BuildValue (@@7"7"7ࠠ@K#);
"+ 
", A@@@#);

@@7𠠑"%7@K.    if (!py_e_"B "C UA@B@K	#) { PyErr_PrintEx (0); goto out; }
@@@@@	3    if (!py_e_%s) { PyErr_PrintEx (0); goto out; }
@@8"G8@K8    PyList_SET_ITEM (py_"d Yc"e YA@B@K$, i_@B@K', py_e_@B@K#);
$@@@@@@@@@	,    PyList_SET_ITEM (py_%s, i_%s, py_e_%s);
+@@88"8@@K$  }
" " A@@@$  }

@@8T"8\@K%  py_" " A@B@K/ = PyList_New (@B@K#);
@@@@@@@;  py_%s = PyList_New (%s);
 @@8"8@K*  if (!py_" " )A@B@K	#) { PyErr_PrintEx (0); goto out; }
@@@@@	/  if (!py_%s) { PyErr_PrintEx (0); goto out; }
@@8"8@K+  size_t i_# -7# -IA@B@K";
@@@@@/  size_t i_%s;
@@8#8Ƞ@K)  for (i_#$ MW#% MA@B@K( = 0; i_@B@K# < @B@K&; ++i_$@B@K$) {
/@@@@@@@@@@@	&  for (i_%s = 0; i_%s < %s; ++i_%s) {
6@@8𠠑#J8@K3    PyObject *py_e_#g #h A@B@K< = PyLong_FromUnsignedLong (@B@K#[i_@B@K$]);
$@@@@@@@@@	<    PyObject *py_e_%s = PyLong_FromUnsignedLong (%s[i_%s]);
+@@9 #9(@K.    if (!py_e_# # A@B@K	#) { PyErr_PrintEx (0); goto out; }
@@@@@	3    if (!py_e_%s) { PyErr_PrintEx (0); goto out; }
@@9@#9H@K8    PyList_SET_ITEM (py_# !+# !ZA@B@K$, i_@B@K', py_e_@B@K#);
$@@@@@@@@@	,    PyList_SET_ITEM (py_%s, i_%s, py_e_%s);
+@@9l#9t@K$  }
# bl# bsA@@@$  }

@@9#9@K%  py_$ $ A@B@K	, = nbd_internal_py_get_subview (data->view, @B@K", @B@K#);
$@@@@@@@@@	<  py_%s = nbd_internal_py_get_subview (data->view, %s, %s);
+@@9̠$+9Ԡ@K*  if (!py_$H %$I WA@B@K	#) { PyErr_PrintEx (0); goto out; }
@@@@@	/  if (!py_%s) { PyErr_PrintEx (0); goto out; }
@@9젠$M9@K%  py_$j $k A@B@K	! = nbd_internal_py_wrap_errptr (*@B@K#);
@@@@@@@	-  py_%s = nbd_internal_py_wrap_errptr (*%s);
 @@:$z:@K*  if (!py_$ $ A@B@K	#) { PyErr_PrintEx (0); goto out; }
@@@@@	/  if (!py_%s) { PyErr_PrintEx (0); goto out; }
@@:$:@$$ Pw$ P@@ ՠg@:Ԡ$:ܠ@K/  PyObject *py_$ ,6$ ,SA@B@K) = NULL;
@@@@@:  PyObject *py_%s = NULL;
@@<t$<|@K//* Wrapper for $ OT$ OvA@B@K. callback. */
@@@@@?/* Wrapper for %s callback. */
@@<$<@K+static int
% % A@@@+static int

@@<%
<Ġ@B@K)_wrapper %, %- A@@@@+%s_wrapper 
@@<ؠ%&<ࠠ@A@=	=@LJ@@!
%S %T A@@=(%F=0@K"{
%c %d A@@@"{

@@=@%]=H@K	,  const struct user_data *data = user_data;
%z %{ "A@@@	,  const struct user_data *data = user_data;

@@=X%t=`@K0  int ret = -1;
% $)% $<A@@@0  int ret = -1;

@@=p%=x@LJ@@!
% >C% >GA@@=%=@K	3  PyGILState_STATE py_save = PyGILState_Ensure ();
% IN% IA@@@	3  PyGILState_STATE py_save = PyGILState_Ensure ();

@@=%=@K>  PyObject *py_args, *py_ret;
% % A@@@>  PyObject *py_args, *py_ret;

@@=%=%=䠠@LJ@@!
% pu% pyA@@=%=%> @LJ@@!
& & A@@>0&>8%>\@K;  py_args = Py_BuildValue (&! NS&" NpA@@@;  py_args = Py_BuildValue (
@@>l&>t&>@K#);
&; PU&< P[A@@@#);

@@>&5>@K	1  if (!py_args) { PyErr_PrintEx (0); goto out; }
&R ]b&S ]A@@@	1  if (!py_args) { PyErr_PrintEx (0); goto out; }

@@>Ƞ&L>Р@LJ@@!
&o &p A@@>ࠠ&b>蠠@K	4  py_ret = PyObject_CallObject (data->fn, py_args);
& & A@@@	4  py_ret = PyObject_CallObject (data->fn, py_args);

@@>&y? @LJ@@!
& & A@@?&?@K7  Py_DECREF (py_args);
& & A@@@7  Py_DECREF (py_args);

@@?(&?0@LJ@@!
& 
& 
A@@?@&?H@K8  if (py_ret != NULL) {
& & 8A@@@8  if (py_ret != NULL) {

@@?X&?`@K?    if (PyLong_Check (py_ret))
& :?& :aA@@@?    if (PyLong_Check (py_ret))

@@?p&?x@K	$      ret = PyLong_AsLong (py_ret);
' ch' cA@@@	$      ret = PyLong_AsLong (py_ret);

@@?'?@K)    else
' ' A@@@)    else

@@?'?@K	4      /* If it's not a long, just assume it's 0. */
'5 '6 A@@@	4      /* If it's not a long, just assume it's 0. */

@@?'/?@K/      ret = 0;
'L 'M A@@@/      ret = 0;

@@?Р'F?ؠ@K8    Py_DECREF (py_ret);
'c  'd A@@@8    Py_DECREF (py_ret);

@@?蠠']?𠠐@K$  }
'z "'{ )A@@@$  }

@@@ 't@@K)  else {
'+0'+<A@@@)  else {

@@@'@ @K	6    /* Special case failed assertions to be fatal. */
'>C'>|A@@@	6    /* Special case failed assertions to be fatal. */

@@@0'@8@K	9    if (PyErr_ExceptionMatches (PyExc_AssertionError)) {
'~'~A@@@	9    if (PyErr_ExceptionMatches (PyExc_AssertionError)) {

@@@H'@P@K6      PyErr_Print ();
''A@@@6      PyErr_Print ();

@@@`'@h@K0      abort ();
''A@@@0      abort ();

@@@x'@@K&    }
( (	A@@@&    }

@@@'@@K	-    PyErr_PrintEx (0); /* print exception */
((@A@@@	-    PyErr_PrintEx (0); /* print exception */

@@@(@@K%  };
(2BG(3BOA@@@%  };

@@@(,@Ƞ@LJ@@!
(O	QV(P	QZA@@@ؠ(B@ࠠ@K& out:
(_
\a(`
\jA@@@& out:

@@@𠠑(Y@(@A@K	   PyGILState_Release (py_save);
(y!!(z!"A@@@	   PyGILState_Release (py_save);

@@A,(sA4@K.  return ret;
("	"("	"A@@@.  return ret;

@@AD(AL@K"}
("!"&("!"+A@@@"}

@@A\(Ad@LJ@@!
( "-"2( "-"6A@@At(A|@K$  {
( g( gA@@@$  {

@@A(A@K%    "( h( hA@B@K#",
@@@@@*    "%s",
@@A(A@K4    nbd_internal_py_)
 i) iA@B@K",
@@@@@8    nbd_internal_py_%s,
@@AȠ)AР@K2    METH_VARARGS,
)/ j)0 jA@@@2    METH_VARARGS,

@@Aࠠ))A蠠@K)    NULL
)F k%)G k1A@@@)    NULL

@@A)@B @K%  },
)] l3<)^ l3DA@@@%  },

@@B)WB)ZBH@K4#include <config.h>
)w W
'
,)x W
'
CA@@@4#include <config.h>

@@BX)qB`@LJ@@!
) X
E
J) X
E
NA@@Bp)Bx@K;#define PY_SSIZE_T_CLEAN 1
) Y
P
U) Y
P
sA@@@;#define PY_SSIZE_T_CLEAN 1

@@B)B@K4#include <Python.h>
) Z
u
z) Z
u
A@@@4#include <Python.h>

@@B)B@LJ@@!
) [

) [

A@@B)B@K3#include <stdio.h>
) \

) \

A@@@3#include <stdio.h>

@@BР)Bؠ@K4#include <stdlib.h>
) ]

*  ]

A@@@4#include <stdlib.h>

@@B蠠)B𠠐@K4#include <assert.h>
* ^

* ^

A@@@4#include <assert.h>

@@C *C@LJ@@!
*3 _

*4 _
 A@@C*&C @K4#include <libnbd.h>
*C `*D `A@@@4#include <libnbd.h>

@@C0*=C8@LJ@@!
*` a %*a a )A@@CH*SCP@K5#include "methods.h"
*p b+0*q b+JA@@@5#include "methods.h"

@@C`*jCh@LJ@@!
* cLQ* cLUA@@Cx*C@K	!static PyMethodDef methods[] = {
* dW\* dWA@@@	!static PyMethodDef methods[] = {

@@C*C&C*CĠ@&create* mEM* mES@@@%close* mEW* mE\@@@/display_version* n_g* n_v@@@0alloc_aio_buffer* oy* oy@@@2aio_buffer_is_zero* p* p@@@@@@@@CԠ*$Cܠ*C@K:  { NULL, NULL, 0, NULL }
* q* qA@@@:  { NULL, NULL, 0, NULL }

@@D*D@K#};
+	 r+
 rA@@@#};

@@D$+D,@LJ@@!
+& s

+' s

A@@D<+DD@K
  bstatic struct PyModuleDef moduledef = {
  PyModuleDef_HEAD_INIT,
  "libnbdmod",           /* m_name */
  "libnbd module",       /* m_doc */
  -1,                    /* m_size */
  methods,               /* m_methods */
  NULL,                  /* m_reload */
  NULL,                  /* m_traverse */
  NULL,                  /* m_clear */
  NULL,                  /* m_free */
};

/* nbd.Error exception. */
PyObject *nbd_internal_py_Error;

extern PyMODINIT_FUNC PyInit_libnbdmod (void);

PyMODINIT_FUNC
PyInit_libnbdmod (void)
{
  PyObject *mod;

  mod = PyModule_Create (&moduledef);
  if (mod == NULL)
    return NULL;

  nbd_internal_py_Error = PyErr_NewException ("nbd.Error", NULL, NULL);
  if (PyModule_AddObject (mod, "Error", nbd_internal_py_Error) < 0) {
    Py_XDECREF (nbd_internal_py_Error);
    Py_DECREF (mod);
    return NULL;
  }

  return mod;
}
+6 t

+7 ~A@@@
  bstatic struct PyModuleDef moduledef = {
  PyModuleDef_HEAD_INIT,
  "libnbdmod",           /* m_name */
  "libnbd module",       /* m_doc */
  -1,                    /* m_size */
  methods,               /* m_methods */
  NULL,                  /* m_reload */
  NULL,                  /* m_traverse */
  NULL,                  /* m_clear */
  NULL,                  /* m_free */
};

/* nbd.Error exception. */
PyObject *nbd_internal_py_Error;

extern PyMODINIT_FUNC PyInit_libnbdmod (void);

PyMODINIT_FUNC
PyInit_libnbdmod (void)
{
  PyObject *mod;

  mod = PyModule_Create (&moduledef);
  if (mod == NULL)
    return NULL;

  nbd_internal_py_Error = PyErr_NewException ("nbd.Error", NULL, NULL);
  if (PyModule_AddObject (mod, "Error", nbd_internal_py_Error) < 0) {
    Py_XDECREF (nbd_internal_py_Error);
    Py_DECREF (mod);
    return NULL;
  }

  return mod;
}

@@DT+0D\@K	!extern PyObject *nbd_internal_py_+M I+N IA@B@K# (
@@@@@	&extern PyObject *nbd_internal_py_%s (
@@Dt+RD|@K	2                   PyObject *self, PyObject *args
+o J+p J	A@@@	2                   PyObject *self, PyObject *args

@@D+iD@K4                 );
+ K		+ K		'A@@@4                 );

@@D+D+Dܠ@K9#ifndef LIBNBD_METHODS_H
+\+\A@@@9#ifndef LIBNBD_METHODS_H

@@D젠+D@K9#define LIBNBD_METHODS_H
+]+]
A@@@9#define LIBNBD_METHODS_H

@@E+E@LJ@@!
+^+^A@@E+E$@K;#define PY_SSIZE_T_CLEAN 1
+_+_:A@@@;#define PY_SSIZE_T_CLEAN 1

@@E4+E<@K4#include <Python.h>
+`<A+`<XA@@@4#include <Python.h>

@@EL+ET@LJ@@!
,aZ_,aZcA@@Ed,El@K4#include <assert.h>
,(bej,)beA@@@4#include <assert.h>

@@E|,"E@LJ@@!
,Ec,FcA@@E,8E@K
  extern char **nbd_internal_py_get_string_list (PyObject *);
extern void nbd_internal_py_free_string_list (char **);
extern int nbd_internal_py_get_sockaddr (PyObject *,
    struct sockaddr_storage *, socklen_t *);
extern PyObject *nbd_internal_py_get_aio_view (PyObject *, int);
extern int nbd_internal_py_init_aio_buffer (PyObject *);
extern PyObject *nbd_internal_py_get_nbd_buffer_type (void);
extern PyObject *nbd_internal_py_wrap_errptr (int);
extern PyObject *nbd_internal_py_get_subview (PyObject *, const char *, size_t);

static inline struct nbd_handle *
get_handle (PyObject *obj)
{
  assert (obj);
  assert (obj != Py_None);
  return PyCapsule_GetPointer(obj, "nbd_handle");
}

/* nbd.Error exception. */
extern PyObject *nbd_internal_py_Error;

static inline void
raise_exception ()
{
  PyObject *args = Py_BuildValue ("si", nbd_get_error (), nbd_get_errno ());

  if (args != NULL) {
    PyErr_SetObject (nbd_internal_py_Error, args);
    Py_DECREF (args);
  }
}

,Ud,V ElmA@@@
  extern char **nbd_internal_py_get_string_list (PyObject *);
extern void nbd_internal_py_free_string_list (char **);
extern int nbd_internal_py_get_sockaddr (PyObject *,
    struct sockaddr_storage *, socklen_t *);
extern PyObject *nbd_internal_py_get_aio_view (PyObject *, int);
extern int nbd_internal_py_init_aio_buffer (PyObject *);
extern PyObject *nbd_internal_py_get_nbd_buffer_type (void);
extern PyObject *nbd_internal_py_wrap_errptr (int);
extern PyObject *nbd_internal_py_get_subview (PyObject *, const char *, size_t);

static inline struct nbd_handle *
get_handle (PyObject *obj)
{
  assert (obj);
  assert (obj != Py_None);
  return PyCapsule_GetPointer(obj, "nbd_handle");
}

/* nbd.Error exception. */
extern PyObject *nbd_internal_py_Error;

static inline void
raise_exception ()
{
  PyObject *args = Py_BuildValue ("si", nbd_get_error (), nbd_get_errno ());

  if (args != NULL) {
    PyErr_SetObject (nbd_internal_py_Error, args);
    Py_DECREF (args);
  }
}


@@E,OE(YEĠ,9Eࠠ@&create,p L	(	0,q L	(	6@@@%close,y L	(	:,z L	(	?@@@/display_version, M	B	J, M	B	Y@@@0alloc_aio_buffer, N	\	d, N	\	t@@@2aio_buffer_is_zero, O	w	, O	w	@@@@@@@@E𠠑+E,qF@LJ@@!
, Q		, Q		A@@F(,F0@K>#endif /* LIBNBD_METHODS_H */
, R		, R		A@@@>#endif /* LIBNBD_METHODS_H */

@@F@,FH8L<nbd_\([a-z0-9_]+\)(3)>,RR,RR@@F+F8C<LIBNBD_\([A-Z0-9_]+\)>,RR,RR@@FĠ+F̠,G @%Utils0#_Aк6u2+l#Str0jxЊ0ĩ-٠-Stdlib__Uchar0o9us:2[].Stdlib__String0.BdJP.F4Y3+Stdlib__Seq0Jd8_mJk.Stdlib__Printf0pJUX빃Ύ,Stdlib__List0U#r&L.Stdlib__Either0$_ʩ<.Stdlib__Buffer0ok
Vj&Stdlib0-&fºnr39tߠ-(0[C+P4BY[8CamlinternalFormatBasics0ĵ'(jdǠ!C00+kquS{#API0e M'cC@,y)$,q-+,,,-$@@@G4                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              /* NBD client library in userspace
 * WARNING: THIS FILE IS GENERATED FROM
 * generator/generator
 * ANY CHANGES YOU MAKE TO THIS FILE WILL BE LOST.
 *
 * Copyright Red Hat
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
 */

#define PY_SSIZE_T_CLEAN 1
#include <Python.h>

#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#include <stdbool.h>

#include <libnbd.h>

#include <methods.h>

/* This is passed to *_wrapper as the user_data pointer
 * and freed in the free_user_data function below.
 */
struct user_data {
  PyObject *fn;    /* Optional pointer to Python function. */
  PyObject *view;  /* Optional PyMemoryView of persistent buffer. */
};

static struct user_data *
alloc_user_data (void)
{
  struct user_data *data = calloc (1, sizeof *data);
  if (data == NULL) {
    PyErr_NoMemory ();
    return NULL;
  }
  return data;
}

static void
free_user_data (void *user_data)
{
  struct user_data *data = user_data;

  if (data) {
    PyGILState_STATE py_save = PyGILState_Ensure ();
    Py_XDECREF (data->fn);
    Py_XDECREF (data->view);
    PyGILState_Release (py_save);
    free (data);
  }
}

/* Wrapper for chunk callback. */
static int
chunk_wrapper (void *user_data, const void *subbuf, size_t count,
               uint64_t offset, unsigned status, int *error)
{
  const struct user_data *data = user_data;
  int ret = -1;

  PyGILState_STATE py_save = PyGILState_Ensure ();
  PyObject *py_args, *py_ret;
  PyObject *py_subbuf = NULL;
  PyObject *py_error = NULL;

  py_subbuf = nbd_internal_py_get_subview (data->view, subbuf, count);
  if (!py_subbuf) { PyErr_PrintEx (0); goto out; }
  py_error = nbd_internal_py_wrap_errptr (*error);
  if (!py_error) { PyErr_PrintEx (0); goto out; }

  py_args = Py_BuildValue ("(OKIO)", py_subbuf, offset, status, py_error);
  if (!py_args) { PyErr_PrintEx (0); goto out; }

  py_ret = PyObject_CallObject (data->fn, py_args);

  Py_DECREF (py_args);

  if (py_ret != NULL) {
    if (PyLong_Check (py_ret))
      ret = PyLong_AsLong (py_ret);
    else
      /* If it's not a long, just assume it's 0. */
      ret = 0;
    Py_DECREF (py_ret);
  }
  else {
    /* Special case failed assertions to be fatal. */
    if (PyErr_ExceptionMatches (PyExc_AssertionError)) {
      PyErr_Print ();
      abort ();
    }
    PyErr_PrintEx (0); /* print exception */
  };

 out:
  Py_XDECREF (py_subbuf);
  if (py_error) {
    PyObject *py_error_ret = PyObject_GetAttrString (py_error, "value");
    *error = PyLong_AsLong (py_error_ret);
    Py_DECREF (py_error_ret);
    Py_DECREF (py_error);
  }
  PyGILState_Release (py_save);
  return ret;
}

/* Wrapper for completion callback. */
static int
completion_wrapper (void *user_data, int *error)
{
  const struct user_data *data = user_data;
  int ret = -1;

  PyGILState_STATE py_save = PyGILState_Ensure ();
  PyObject *py_args, *py_ret;
  PyObject *py_error = NULL;

  py_error = nbd_internal_py_wrap_errptr (*error);
  if (!py_error) { PyErr_PrintEx (0); goto out; }

  py_args = Py_BuildValue ("(O)", py_error);
  if (!py_args) { PyErr_PrintEx (0); goto out; }

  py_ret = PyObject_CallObject (data->fn, py_args);

  Py_DECREF (py_args);

  if (py_ret != NULL) {
    if (PyLong_Check (py_ret))
      ret = PyLong_AsLong (py_ret);
    else
      /* If it's not a long, just assume it's 0. */
      ret = 0;
    Py_DECREF (py_ret);
  }
  else {
    /* Special case failed assertions to be fatal. */
    if (PyErr_ExceptionMatches (PyExc_AssertionError)) {
      PyErr_Print ();
      abort ();
    }
    PyErr_PrintEx (0); /* print exception */
  };

 out:
  if (py_error) {
    PyObject *py_error_ret = PyObject_GetAttrString (py_error, "value");
    *error = PyLong_AsLong (py_error_ret);
    Py_DECREF (py_error_ret);
    Py_DECREF (py_error);
  }
  PyGILState_Release (py_save);
  return ret;
}

/* Wrapper for debug callback. */
static int
debug_wrapper (void *user_data, const char *context, const char *msg)
{
  const struct user_data *data = user_data;
  int ret = -1;

  PyGILState_STATE py_save = PyGILState_Ensure ();
  PyObject *py_args, *py_ret;


  py_args = Py_BuildValue ("(ss)", context, msg);
  if (!py_args) { PyErr_PrintEx (0); goto out; }

  py_ret = PyObject_CallObject (data->fn, py_args);

  Py_DECREF (py_args);

  if (py_ret != NULL) {
    if (PyLong_Check (py_ret))
      ret = PyLong_AsLong (py_ret);
    else
      /* If it's not a long, just assume it's 0. */
      ret = 0;
    Py_DECREF (py_ret);
  }
  else {
    /* Special case failed assertions to be fatal. */
    if (PyErr_ExceptionMatches (PyExc_AssertionError)) {
      PyErr_Print ();
      abort ();
    }
    PyErr_PrintEx (0); /* print exception */
  };

 out:
  PyGILState_Release (py_save);
  return ret;
}

/* Wrapper for extent callback. */
static int
extent_wrapper (void *user_data, const char *metacontext, uint64_t offset,
                uint32_t *entries, size_t nr_entries, int *error)
{
  const struct user_data *data = user_data;
  int ret = -1;

  PyGILState_STATE py_save = PyGILState_Ensure ();
  PyObject *py_args, *py_ret;
  PyObject *py_entries = NULL;
  PyObject *py_error = NULL;

  py_entries = PyList_New (nr_entries);
  if (!py_entries) { PyErr_PrintEx (0); goto out; }
  size_t i_entries;
  for (i_entries = 0; i_entries < nr_entries; ++i_entries) {
    PyObject *py_e_entries = PyLong_FromUnsignedLong (entries[i_entries]);
    if (!py_e_entries) { PyErr_PrintEx (0); goto out; }
    PyList_SET_ITEM (py_entries, i_entries, py_e_entries);
  }
  py_error = nbd_internal_py_wrap_errptr (*error);
  if (!py_error) { PyErr_PrintEx (0); goto out; }

  py_args = Py_BuildValue ("(sKOO)", metacontext, offset, py_entries,
                           py_error);
  if (!py_args) { PyErr_PrintEx (0); goto out; }

  py_ret = PyObject_CallObject (data->fn, py_args);

  Py_DECREF (py_args);

  if (py_ret != NULL) {
    if (PyLong_Check (py_ret))
      ret = PyLong_AsLong (py_ret);
    else
      /* If it's not a long, just assume it's 0. */
      ret = 0;
    Py_DECREF (py_ret);
  }
  else {
    /* Special case failed assertions to be fatal. */
    if (PyErr_ExceptionMatches (PyExc_AssertionError)) {
      PyErr_Print ();
      abort ();
    }
    PyErr_PrintEx (0); /* print exception */
  };

 out:
  Py_XDECREF (py_entries);
  if (py_error) {
    PyObject *py_error_ret = PyObject_GetAttrString (py_error, "value");
    *error = PyLong_AsLong (py_error_ret);
    Py_DECREF (py_error_ret);
    Py_DECREF (py_error);
  }
  PyGILState_Release (py_save);
  return ret;
}

/* Wrapper for extent64 callback. */
static int
extent64_wrapper (void *user_data, const char *metacontext, uint64_t offset,
                  nbd_extent *entries, size_t nr_entries, int *error)
{
  const struct user_data *data = user_data;
  int ret = -1;

  PyGILState_STATE py_save = PyGILState_Ensure ();
  PyObject *py_args, *py_ret;
  PyObject *py_entries = NULL;
  PyObject *py_error = NULL;

  py_entries = PyList_New (nr_entries);
  if (!py_entries) { PyErr_PrintEx (0); goto out; }
  size_t i_entries;
  for (i_entries = 0; i_entries < nr_entries; ++i_entries) {
    PyObject *py_e_entries = Py_BuildValue ("KK", entries[i_entries].length,
                                            entries[i_entries].flags);
    if (!py_e_entries) { PyErr_PrintEx (0); goto out; }
    PyList_SET_ITEM (py_entries, i_entries, py_e_entries);
  }
  py_error = nbd_internal_py_wrap_errptr (*error);
  if (!py_error) { PyErr_PrintEx (0); goto out; }

  py_args = Py_BuildValue ("(sKOO)", metacontext, offset, py_entries,
                           py_error);
  if (!py_args) { PyErr_PrintEx (0); goto out; }

  py_ret = PyObject_CallObject (data->fn, py_args);

  Py_DECREF (py_args);

  if (py_ret != NULL) {
    if (PyLong_Check (py_ret))
      ret = PyLong_AsLong (py_ret);
    else
      /* If it's not a long, just assume it's 0. */
      ret = 0;
    Py_DECREF (py_ret);
  }
  else {
    /* Special case failed assertions to be fatal. */
    if (PyErr_ExceptionMatches (PyExc_AssertionError)) {
      PyErr_Print ();
      abort ();
    }
    PyErr_PrintEx (0); /* print exception */
  };

 out:
  Py_XDECREF (py_entries);
  if (py_error) {
    PyObject *py_error_ret = PyObject_GetAttrString (py_error, "value");
    *error = PyLong_AsLong (py_error_ret);
    Py_DECREF (py_error_ret);
    Py_DECREF (py_error);
  }
  PyGILState_Release (py_save);
  return ret;
}

/* Wrapper for list callback. */
static int
list_wrapper (void *user_data, const char *name, const char *description)
{
  const struct user_data *data = user_data;
  int ret = -1;

  PyGILState_STATE py_save = PyGILState_Ensure ();
  PyObject *py_args, *py_ret;


  py_args = Py_BuildValue ("(ss)", name, description);
  if (!py_args) { PyErr_PrintEx (0); goto out; }

  py_ret = PyObject_CallObject (data->fn, py_args);

  Py_DECREF (py_args);

  if (py_ret != NULL) {
    if (PyLong_Check (py_ret))
      ret = PyLong_AsLong (py_ret);
    else
      /* If it's not a long, just assume it's 0. */
      ret = 0;
    Py_DECREF (py_ret);
  }
  else {
    /* Special case failed assertions to be fatal. */
    if (PyErr_ExceptionMatches (PyExc_AssertionError)) {
      PyErr_Print ();
      abort ();
    }
    PyErr_PrintEx (0); /* print exception */
  };

 out:
  PyGILState_Release (py_save);
  return ret;
}

/* Wrapper for context callback. */
static int
context_wrapper (void *user_data, const char *name)
{
  const struct user_data *data = user_data;
  int ret = -1;

  PyGILState_STATE py_save = PyGILState_Ensure ();
  PyObject *py_args, *py_ret;


  py_args = Py_BuildValue ("(s)", name);
  if (!py_args) { PyErr_PrintEx (0); goto out; }

  py_ret = PyObject_CallObject (data->fn, py_args);

  Py_DECREF (py_args);

  if (py_ret != NULL) {
    if (PyLong_Check (py_ret))
      ret = PyLong_AsLong (py_ret);
    else
      /* If it's not a long, just assume it's 0. */
      ret = 0;
    Py_DECREF (py_ret);
  }
  else {
    /* Special case failed assertions to be fatal. */
    if (PyErr_ExceptionMatches (PyExc_AssertionError)) {
      PyErr_Print ();
      abort ();
    }
    PyErr_PrintEx (0); /* print exception */
  };

 out:
  PyGILState_Release (py_save);
  return ret;
}

PyObject *
nbd_internal_py_set_debug (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int ret;
  PyObject *py_ret = NULL;
  int debug;

  if (!PyArg_ParseTuple (args, "Op:nbd_set_debug", &py_h, &debug))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_set_debug (h, debug);
  Py_END_ALLOW_THREADS;
  if (ret == -1) {
    raise_exception ();
    goto out;
  }
  py_ret = Py_None;
  Py_INCREF (py_ret);

 out:
  return py_ret;
}

PyObject *
nbd_internal_py_get_debug (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int ret;
  PyObject *py_ret = NULL;

  if (!PyArg_ParseTuple (args, "O:nbd_get_debug", &py_h))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_get_debug (h);
  Py_END_ALLOW_THREADS;
  py_ret = ret ? Py_True : Py_False;
  Py_INCREF (py_ret);

 out:
  return py_ret;
}

PyObject *
nbd_internal_py_set_debug_callback (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int ret;
  PyObject *py_ret = NULL;
  struct user_data *debug_user_data = NULL;
  PyObject *py_debug_fn;
  nbd_debug_callback debug = { .callback = debug_wrapper,
                               .free = free_user_data };

  if (!PyArg_ParseTuple (args, "OO:nbd_set_debug_callback", &py_h,
                         &py_debug_fn))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;
  debug.user_data = debug_user_data = alloc_user_data ();
  if (debug_user_data == NULL) goto out;
  if (!PyCallable_Check (py_debug_fn)) {
    PyErr_SetString (PyExc_TypeError,
                     "callback parameter debug is not callable");
    goto out;
  }
  /* Increment refcount since pointer may be saved by libnbd. */
  Py_INCREF (py_debug_fn);
  debug_user_data->fn = py_debug_fn;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_set_debug_callback (h, debug);
  Py_END_ALLOW_THREADS;
  debug_user_data = NULL;
  if (ret == -1) {
    raise_exception ();
    goto out;
  }
  py_ret = Py_None;
  Py_INCREF (py_ret);

 out:
  free_user_data (debug_user_data);
  return py_ret;
}

PyObject *
nbd_internal_py_clear_debug_callback (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int ret;
  PyObject *py_ret = NULL;

  if (!PyArg_ParseTuple (args, "O:nbd_clear_debug_callback", &py_h))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_clear_debug_callback (h);
  Py_END_ALLOW_THREADS;
  if (ret == -1) {
    raise_exception ();
    goto out;
  }
  py_ret = Py_None;
  Py_INCREF (py_ret);

 out:
  return py_ret;
}

PyObject *
nbd_internal_py_stats_bytes_sent (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  uint64_t ret;
  PyObject *py_ret = NULL;

  if (!PyArg_ParseTuple (args, "O:nbd_stats_bytes_sent", &py_h))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_stats_bytes_sent (h);
  Py_END_ALLOW_THREADS;
  py_ret = PyLong_FromLongLong (ret);

 out:
  return py_ret;
}

PyObject *
nbd_internal_py_stats_chunks_sent (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  uint64_t ret;
  PyObject *py_ret = NULL;

  if (!PyArg_ParseTuple (args, "O:nbd_stats_chunks_sent", &py_h))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_stats_chunks_sent (h);
  Py_END_ALLOW_THREADS;
  py_ret = PyLong_FromLongLong (ret);

 out:
  return py_ret;
}

PyObject *
nbd_internal_py_stats_bytes_received (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  uint64_t ret;
  PyObject *py_ret = NULL;

  if (!PyArg_ParseTuple (args, "O:nbd_stats_bytes_received", &py_h))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_stats_bytes_received (h);
  Py_END_ALLOW_THREADS;
  py_ret = PyLong_FromLongLong (ret);

 out:
  return py_ret;
}

PyObject *
nbd_internal_py_stats_chunks_received (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  uint64_t ret;
  PyObject *py_ret = NULL;

  if (!PyArg_ParseTuple (args, "O:nbd_stats_chunks_received", &py_h))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_stats_chunks_received (h);
  Py_END_ALLOW_THREADS;
  py_ret = PyLong_FromLongLong (ret);

 out:
  return py_ret;
}

PyObject *
nbd_internal_py_set_handle_name (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int ret;
  PyObject *py_ret = NULL;
  const char *handle_name;

  if (!PyArg_ParseTuple (args, "Os:nbd_set_handle_name", &py_h,
                         &handle_name))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_set_handle_name (h, handle_name);
  Py_END_ALLOW_THREADS;
  if (ret == -1) {
    raise_exception ();
    goto out;
  }
  py_ret = Py_None;
  Py_INCREF (py_ret);

 out:
  return py_ret;
}

PyObject *
nbd_internal_py_get_handle_name (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  char * ret;
  PyObject *py_ret = NULL;

  if (!PyArg_ParseTuple (args, "O:nbd_get_handle_name", &py_h))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_get_handle_name (h);
  Py_END_ALLOW_THREADS;
  if (ret == NULL) {
    raise_exception ();
    goto out;
  }
  py_ret = PyUnicode_FromString (ret);
  free (ret);

 out:
  return py_ret;
}

PyObject *
nbd_internal_py_set_private_data (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  uintptr_t ret;
  PyObject *py_ret = NULL;
  unsigned int private_data;

  if (!PyArg_ParseTuple (args, "OI:nbd_set_private_data", &py_h,
                         &private_data))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_set_private_data (h, private_data);
  Py_END_ALLOW_THREADS;
  py_ret = PyLong_FromLong (ret);

 out:
  return py_ret;
}

PyObject *
nbd_internal_py_get_private_data (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  uintptr_t ret;
  PyObject *py_ret = NULL;

  if (!PyArg_ParseTuple (args, "O:nbd_get_private_data", &py_h))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_get_private_data (h);
  Py_END_ALLOW_THREADS;
  py_ret = PyLong_FromLong (ret);

 out:
  return py_ret;
}

PyObject *
nbd_internal_py_set_export_name (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int ret;
  PyObject *py_ret = NULL;
  const char *export_name;

  if (!PyArg_ParseTuple (args, "Os:nbd_set_export_name", &py_h,
                         &export_name))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_set_export_name (h, export_name);
  Py_END_ALLOW_THREADS;
  if (ret == -1) {
    raise_exception ();
    goto out;
  }
  py_ret = Py_None;
  Py_INCREF (py_ret);

 out:
  return py_ret;
}

PyObject *
nbd_internal_py_get_export_name (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  char * ret;
  PyObject *py_ret = NULL;

  if (!PyArg_ParseTuple (args, "O:nbd_get_export_name", &py_h))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_get_export_name (h);
  Py_END_ALLOW_THREADS;
  if (ret == NULL) {
    raise_exception ();
    goto out;
  }
  py_ret = PyUnicode_FromString (ret);
  free (ret);

 out:
  return py_ret;
}

PyObject *
nbd_internal_py_set_request_block_size (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int ret;
  PyObject *py_ret = NULL;
  int request;

  if (!PyArg_ParseTuple (args, "Op:nbd_set_request_block_size", &py_h,
                         &request))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_set_request_block_size (h, request);
  Py_END_ALLOW_THREADS;
  if (ret == -1) {
    raise_exception ();
    goto out;
  }
  py_ret = Py_None;
  Py_INCREF (py_ret);

 out:
  return py_ret;
}

PyObject *
nbd_internal_py_get_request_block_size (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int ret;
  PyObject *py_ret = NULL;

  if (!PyArg_ParseTuple (args, "O:nbd_get_request_block_size", &py_h))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_get_request_block_size (h);
  Py_END_ALLOW_THREADS;
  if (ret == -1) {
    raise_exception ();
    goto out;
  }
  py_ret = ret ? Py_True : Py_False;
  Py_INCREF (py_ret);

 out:
  return py_ret;
}

PyObject *
nbd_internal_py_set_full_info (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int ret;
  PyObject *py_ret = NULL;
  int request;

  if (!PyArg_ParseTuple (args, "Op:nbd_set_full_info", &py_h, &request))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_set_full_info (h, request);
  Py_END_ALLOW_THREADS;
  if (ret == -1) {
    raise_exception ();
    goto out;
  }
  py_ret = Py_None;
  Py_INCREF (py_ret);

 out:
  return py_ret;
}

PyObject *
nbd_internal_py_get_full_info (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int ret;
  PyObject *py_ret = NULL;

  if (!PyArg_ParseTuple (args, "O:nbd_get_full_info", &py_h))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_get_full_info (h);
  Py_END_ALLOW_THREADS;
  if (ret == -1) {
    raise_exception ();
    goto out;
  }
  py_ret = ret ? Py_True : Py_False;
  Py_INCREF (py_ret);

 out:
  return py_ret;
}

PyObject *
nbd_internal_py_get_canonical_export_name (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  char * ret;
  PyObject *py_ret = NULL;

  if (!PyArg_ParseTuple (args, "O:nbd_get_canonical_export_name", &py_h))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_get_canonical_export_name (h);
  Py_END_ALLOW_THREADS;
  if (ret == NULL) {
    raise_exception ();
    goto out;
  }
  py_ret = PyUnicode_FromString (ret);
  free (ret);

 out:
  return py_ret;
}

PyObject *
nbd_internal_py_get_export_description (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  char * ret;
  PyObject *py_ret = NULL;

  if (!PyArg_ParseTuple (args, "O:nbd_get_export_description", &py_h))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_get_export_description (h);
  Py_END_ALLOW_THREADS;
  if (ret == NULL) {
    raise_exception ();
    goto out;
  }
  py_ret = PyUnicode_FromString (ret);
  free (ret);

 out:
  return py_ret;
}

PyObject *
nbd_internal_py_set_tls (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int ret;
  PyObject *py_ret = NULL;
  int tls;

  if (!PyArg_ParseTuple (args, "Oi:nbd_set_tls", &py_h, &tls))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_set_tls (h, tls);
  Py_END_ALLOW_THREADS;
  if (ret == -1) {
    raise_exception ();
    goto out;
  }
  py_ret = Py_None;
  Py_INCREF (py_ret);

 out:
  return py_ret;
}

PyObject *
nbd_internal_py_get_tls (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int ret;
  PyObject *py_ret = NULL;

  if (!PyArg_ParseTuple (args, "O:nbd_get_tls", &py_h))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_get_tls (h);
  Py_END_ALLOW_THREADS;
  py_ret = PyLong_FromLong (ret);

 out:
  return py_ret;
}

PyObject *
nbd_internal_py_get_tls_negotiated (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int ret;
  PyObject *py_ret = NULL;

  if (!PyArg_ParseTuple (args, "O:nbd_get_tls_negotiated", &py_h))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_get_tls_negotiated (h);
  Py_END_ALLOW_THREADS;
  if (ret == -1) {
    raise_exception ();
    goto out;
  }
  py_ret = ret ? Py_True : Py_False;
  Py_INCREF (py_ret);

 out:
  return py_ret;
}

PyObject *
nbd_internal_py_set_tls_certificates (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int ret;
  PyObject *py_ret = NULL;
  PyObject *py_dir = NULL;
  char *dir = NULL;

  if (!PyArg_ParseTuple (args, "OO&:nbd_set_tls_certificates", &py_h,
                         PyUnicode_FSConverter, &py_dir))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;
  dir = PyBytes_AS_STRING (py_dir);
  assert (dir != NULL);

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_set_tls_certificates (h, dir);
  Py_END_ALLOW_THREADS;
  if (ret == -1) {
    raise_exception ();
    goto out;
  }
  py_ret = Py_None;
  Py_INCREF (py_ret);

 out:
  Py_XDECREF (py_dir);
  return py_ret;
}

PyObject *
nbd_internal_py_set_tls_verify_peer (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int ret;
  PyObject *py_ret = NULL;
  int verify;

  if (!PyArg_ParseTuple (args, "Op:nbd_set_tls_verify_peer", &py_h, &verify))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_set_tls_verify_peer (h, verify);
  Py_END_ALLOW_THREADS;
  if (ret == -1) {
    raise_exception ();
    goto out;
  }
  py_ret = Py_None;
  Py_INCREF (py_ret);

 out:
  return py_ret;
}

PyObject *
nbd_internal_py_get_tls_verify_peer (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int ret;
  PyObject *py_ret = NULL;

  if (!PyArg_ParseTuple (args, "O:nbd_get_tls_verify_peer", &py_h))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_get_tls_verify_peer (h);
  Py_END_ALLOW_THREADS;
  py_ret = ret ? Py_True : Py_False;
  Py_INCREF (py_ret);

 out:
  return py_ret;
}

PyObject *
nbd_internal_py_set_tls_username (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int ret;
  PyObject *py_ret = NULL;
  const char *username;

  if (!PyArg_ParseTuple (args, "Os:nbd_set_tls_username", &py_h, &username))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_set_tls_username (h, username);
  Py_END_ALLOW_THREADS;
  if (ret == -1) {
    raise_exception ();
    goto out;
  }
  py_ret = Py_None;
  Py_INCREF (py_ret);

 out:
  return py_ret;
}

PyObject *
nbd_internal_py_get_tls_username (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  char * ret;
  PyObject *py_ret = NULL;

  if (!PyArg_ParseTuple (args, "O:nbd_get_tls_username", &py_h))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_get_tls_username (h);
  Py_END_ALLOW_THREADS;
  if (ret == NULL) {
    raise_exception ();
    goto out;
  }
  py_ret = PyUnicode_FromString (ret);
  free (ret);

 out:
  return py_ret;
}

PyObject *
nbd_internal_py_set_tls_hostname (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int ret;
  PyObject *py_ret = NULL;
  const char *hostname;

  if (!PyArg_ParseTuple (args, "Os:nbd_set_tls_hostname", &py_h, &hostname))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_set_tls_hostname (h, hostname);
  Py_END_ALLOW_THREADS;
  if (ret == -1) {
    raise_exception ();
    goto out;
  }
  py_ret = Py_None;
  Py_INCREF (py_ret);

 out:
  return py_ret;
}

PyObject *
nbd_internal_py_get_tls_hostname (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  char * ret;
  PyObject *py_ret = NULL;

  if (!PyArg_ParseTuple (args, "O:nbd_get_tls_hostname", &py_h))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_get_tls_hostname (h);
  Py_END_ALLOW_THREADS;
  if (ret == NULL) {
    raise_exception ();
    goto out;
  }
  py_ret = PyUnicode_FromString (ret);
  free (ret);

 out:
  return py_ret;
}

PyObject *
nbd_internal_py_set_tls_psk_file (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int ret;
  PyObject *py_ret = NULL;
  PyObject *py_filename = NULL;
  char *filename = NULL;

  if (!PyArg_ParseTuple (args, "OO&:nbd_set_tls_psk_file", &py_h,
                         PyUnicode_FSConverter, &py_filename))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;
  filename = PyBytes_AS_STRING (py_filename);
  assert (filename != NULL);

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_set_tls_psk_file (h, filename);
  Py_END_ALLOW_THREADS;
  if (ret == -1) {
    raise_exception ();
    goto out;
  }
  py_ret = Py_None;
  Py_INCREF (py_ret);

 out:
  Py_XDECREF (py_filename);
  return py_ret;
}

PyObject *
nbd_internal_py_set_request_extended_headers (PyObject *self,
                                              PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int ret;
  PyObject *py_ret = NULL;
  int request;

  if (!PyArg_ParseTuple (args, "Op:nbd_set_request_extended_headers", &py_h,
                         &request))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_set_request_extended_headers (h, request);
  Py_END_ALLOW_THREADS;
  if (ret == -1) {
    raise_exception ();
    goto out;
  }
  py_ret = Py_None;
  Py_INCREF (py_ret);

 out:
  return py_ret;
}

PyObject *
nbd_internal_py_get_request_extended_headers (PyObject *self,
                                              PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int ret;
  PyObject *py_ret = NULL;

  if (!PyArg_ParseTuple (args, "O:nbd_get_request_extended_headers", &py_h))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_get_request_extended_headers (h);
  Py_END_ALLOW_THREADS;
  py_ret = ret ? Py_True : Py_False;
  Py_INCREF (py_ret);

 out:
  return py_ret;
}

PyObject *
nbd_internal_py_get_extended_headers_negotiated (PyObject *self,
                                                 PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int ret;
  PyObject *py_ret = NULL;

  if (!PyArg_ParseTuple (args, "O:nbd_get_extended_headers_negotiated",
                         &py_h))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_get_extended_headers_negotiated (h);
  Py_END_ALLOW_THREADS;
  if (ret == -1) {
    raise_exception ();
    goto out;
  }
  py_ret = ret ? Py_True : Py_False;
  Py_INCREF (py_ret);

 out:
  return py_ret;
}

PyObject *
nbd_internal_py_set_request_structured_replies (PyObject *self,
                                                PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int ret;
  PyObject *py_ret = NULL;
  int request;

  if (!PyArg_ParseTuple (args, "Op:nbd_set_request_structured_replies",
                         &py_h, &request))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_set_request_structured_replies (h, request);
  Py_END_ALLOW_THREADS;
  if (ret == -1) {
    raise_exception ();
    goto out;
  }
  py_ret = Py_None;
  Py_INCREF (py_ret);

 out:
  return py_ret;
}

PyObject *
nbd_internal_py_get_request_structured_replies (PyObject *self,
                                                PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int ret;
  PyObject *py_ret = NULL;

  if (!PyArg_ParseTuple (args, "O:nbd_get_request_structured_replies",
                         &py_h))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_get_request_structured_replies (h);
  Py_END_ALLOW_THREADS;
  py_ret = ret ? Py_True : Py_False;
  Py_INCREF (py_ret);

 out:
  return py_ret;
}

PyObject *
nbd_internal_py_get_structured_replies_negotiated (PyObject *self,
                                                   PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int ret;
  PyObject *py_ret = NULL;

  if (!PyArg_ParseTuple (args, "O:nbd_get_structured_replies_negotiated",
                         &py_h))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_get_structured_replies_negotiated (h);
  Py_END_ALLOW_THREADS;
  if (ret == -1) {
    raise_exception ();
    goto out;
  }
  py_ret = ret ? Py_True : Py_False;
  Py_INCREF (py_ret);

 out:
  return py_ret;
}

PyObject *
nbd_internal_py_set_request_meta_context (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int ret;
  PyObject *py_ret = NULL;
  int request;

  if (!PyArg_ParseTuple (args, "Op:nbd_set_request_meta_context", &py_h,
                         &request))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_set_request_meta_context (h, request);
  Py_END_ALLOW_THREADS;
  if (ret == -1) {
    raise_exception ();
    goto out;
  }
  py_ret = Py_None;
  Py_INCREF (py_ret);

 out:
  return py_ret;
}

PyObject *
nbd_internal_py_get_request_meta_context (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int ret;
  PyObject *py_ret = NULL;

  if (!PyArg_ParseTuple (args, "O:nbd_get_request_meta_context", &py_h))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_get_request_meta_context (h);
  Py_END_ALLOW_THREADS;
  if (ret == -1) {
    raise_exception ();
    goto out;
  }
  py_ret = ret ? Py_True : Py_False;
  Py_INCREF (py_ret);

 out:
  return py_ret;
}

PyObject *
nbd_internal_py_set_handshake_flags (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int ret;
  PyObject *py_ret = NULL;
  uint32_t flags_u32;
  unsigned int flags; /* really uint32_t */

  if (!PyArg_ParseTuple (args, "OI:nbd_set_handshake_flags", &py_h, &flags))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;
  flags_u32 = flags;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_set_handshake_flags (h, flags_u32);
  Py_END_ALLOW_THREADS;
  if (ret == -1) {
    raise_exception ();
    goto out;
  }
  py_ret = Py_None;
  Py_INCREF (py_ret);

 out:
  return py_ret;
}

PyObject *
nbd_internal_py_get_handshake_flags (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  uint32_t ret;
  PyObject *py_ret = NULL;

  if (!PyArg_ParseTuple (args, "O:nbd_get_handshake_flags", &py_h))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_get_handshake_flags (h);
  Py_END_ALLOW_THREADS;
  py_ret = PyLong_FromLong (ret);

 out:
  return py_ret;
}

PyObject *
nbd_internal_py_set_pread_initialize (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int ret;
  PyObject *py_ret = NULL;
  int request;

  if (!PyArg_ParseTuple (args, "Op:nbd_set_pread_initialize", &py_h,
                         &request))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_set_pread_initialize (h, request);
  Py_END_ALLOW_THREADS;
  if (ret == -1) {
    raise_exception ();
    goto out;
  }
  py_ret = Py_None;
  Py_INCREF (py_ret);

 out:
  return py_ret;
}

PyObject *
nbd_internal_py_get_pread_initialize (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int ret;
  PyObject *py_ret = NULL;

  if (!PyArg_ParseTuple (args, "O:nbd_get_pread_initialize", &py_h))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_get_pread_initialize (h);
  Py_END_ALLOW_THREADS;
  py_ret = ret ? Py_True : Py_False;
  Py_INCREF (py_ret);

 out:
  return py_ret;
}

PyObject *
nbd_internal_py_set_strict_mode (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int ret;
  PyObject *py_ret = NULL;
  uint32_t flags_u32;
  unsigned int flags; /* really uint32_t */

  if (!PyArg_ParseTuple (args, "OI:nbd_set_strict_mode", &py_h, &flags))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;
  flags_u32 = flags;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_set_strict_mode (h, flags_u32);
  Py_END_ALLOW_THREADS;
  if (ret == -1) {
    raise_exception ();
    goto out;
  }
  py_ret = Py_None;
  Py_INCREF (py_ret);

 out:
  return py_ret;
}

PyObject *
nbd_internal_py_get_strict_mode (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  uint32_t ret;
  PyObject *py_ret = NULL;

  if (!PyArg_ParseTuple (args, "O:nbd_get_strict_mode", &py_h))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_get_strict_mode (h);
  Py_END_ALLOW_THREADS;
  py_ret = PyLong_FromLong (ret);

 out:
  return py_ret;
}

PyObject *
nbd_internal_py_set_opt_mode (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int ret;
  PyObject *py_ret = NULL;
  int enable;

  if (!PyArg_ParseTuple (args, "Op:nbd_set_opt_mode", &py_h, &enable))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_set_opt_mode (h, enable);
  Py_END_ALLOW_THREADS;
  if (ret == -1) {
    raise_exception ();
    goto out;
  }
  py_ret = Py_None;
  Py_INCREF (py_ret);

 out:
  return py_ret;
}

PyObject *
nbd_internal_py_get_opt_mode (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int ret;
  PyObject *py_ret = NULL;

  if (!PyArg_ParseTuple (args, "O:nbd_get_opt_mode", &py_h))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_get_opt_mode (h);
  Py_END_ALLOW_THREADS;
  py_ret = ret ? Py_True : Py_False;
  Py_INCREF (py_ret);

 out:
  return py_ret;
}

PyObject *
nbd_internal_py_opt_go (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int ret;
  PyObject *py_ret = NULL;

  if (!PyArg_ParseTuple (args, "O:nbd_opt_go", &py_h))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_opt_go (h);
  Py_END_ALLOW_THREADS;
  if (ret == -1) {
    raise_exception ();
    goto out;
  }
  py_ret = Py_None;
  Py_INCREF (py_ret);

 out:
  return py_ret;
}

PyObject *
nbd_internal_py_opt_abort (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int ret;
  PyObject *py_ret = NULL;

  if (!PyArg_ParseTuple (args, "O:nbd_opt_abort", &py_h))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_opt_abort (h);
  Py_END_ALLOW_THREADS;
  if (ret == -1) {
    raise_exception ();
    goto out;
  }
  py_ret = Py_None;
  Py_INCREF (py_ret);

 out:
  return py_ret;
}

PyObject *
nbd_internal_py_opt_starttls (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int ret;
  PyObject *py_ret = NULL;

  if (!PyArg_ParseTuple (args, "O:nbd_opt_starttls", &py_h))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_opt_starttls (h);
  Py_END_ALLOW_THREADS;
  if (ret == -1) {
    raise_exception ();
    goto out;
  }
  py_ret = ret ? Py_True : Py_False;
  Py_INCREF (py_ret);

 out:
  return py_ret;
}

PyObject *
nbd_internal_py_opt_extended_headers (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int ret;
  PyObject *py_ret = NULL;

  if (!PyArg_ParseTuple (args, "O:nbd_opt_extended_headers", &py_h))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_opt_extended_headers (h);
  Py_END_ALLOW_THREADS;
  if (ret == -1) {
    raise_exception ();
    goto out;
  }
  py_ret = ret ? Py_True : Py_False;
  Py_INCREF (py_ret);

 out:
  return py_ret;
}

PyObject *
nbd_internal_py_opt_structured_reply (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int ret;
  PyObject *py_ret = NULL;

  if (!PyArg_ParseTuple (args, "O:nbd_opt_structured_reply", &py_h))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_opt_structured_reply (h);
  Py_END_ALLOW_THREADS;
  if (ret == -1) {
    raise_exception ();
    goto out;
  }
  py_ret = ret ? Py_True : Py_False;
  Py_INCREF (py_ret);

 out:
  return py_ret;
}

PyObject *
nbd_internal_py_opt_list (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int ret;
  PyObject *py_ret = NULL;
  struct user_data *list_user_data = NULL;
  PyObject *py_list_fn;
  nbd_list_callback list = { .callback = list_wrapper,
                             .free = free_user_data };

  if (!PyArg_ParseTuple (args, "OO:nbd_opt_list", &py_h, &py_list_fn))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;
  list.user_data = list_user_data = alloc_user_data ();
  if (list_user_data == NULL) goto out;
  if (!PyCallable_Check (py_list_fn)) {
    PyErr_SetString (PyExc_TypeError,
                     "callback parameter list is not callable");
    goto out;
  }
  /* Increment refcount since pointer may be saved by libnbd. */
  Py_INCREF (py_list_fn);
  list_user_data->fn = py_list_fn;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_opt_list (h, list);
  Py_END_ALLOW_THREADS;
  list_user_data = NULL;
  if (ret == -1) {
    raise_exception ();
    goto out;
  }
  py_ret = PyLong_FromLong (ret);

 out:
  free_user_data (list_user_data);
  return py_ret;
}

PyObject *
nbd_internal_py_opt_info (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int ret;
  PyObject *py_ret = NULL;

  if (!PyArg_ParseTuple (args, "O:nbd_opt_info", &py_h))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_opt_info (h);
  Py_END_ALLOW_THREADS;
  if (ret == -1) {
    raise_exception ();
    goto out;
  }
  py_ret = Py_None;
  Py_INCREF (py_ret);

 out:
  return py_ret;
}

PyObject *
nbd_internal_py_opt_list_meta_context (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int ret;
  PyObject *py_ret = NULL;
  struct user_data *context_user_data = NULL;
  PyObject *py_context_fn;
  nbd_context_callback context = { .callback = context_wrapper,
                                   .free = free_user_data };

  if (!PyArg_ParseTuple (args, "OO:nbd_opt_list_meta_context", &py_h,
                         &py_context_fn))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;
  context.user_data = context_user_data = alloc_user_data ();
  if (context_user_data == NULL) goto out;
  if (!PyCallable_Check (py_context_fn)) {
    PyErr_SetString (PyExc_TypeError,
                     "callback parameter context is not callable");
    goto out;
  }
  /* Increment refcount since pointer may be saved by libnbd. */
  Py_INCREF (py_context_fn);
  context_user_data->fn = py_context_fn;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_opt_list_meta_context (h, context);
  Py_END_ALLOW_THREADS;
  context_user_data = NULL;
  if (ret == -1) {
    raise_exception ();
    goto out;
  }
  py_ret = PyLong_FromLong (ret);

 out:
  free_user_data (context_user_data);
  return py_ret;
}

PyObject *
nbd_internal_py_opt_list_meta_context_queries (PyObject *self,
                                               PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int ret;
  PyObject *py_ret = NULL;
  PyObject *py_queries;
  char **queries = NULL;
  struct user_data *context_user_data = NULL;
  PyObject *py_context_fn;
  nbd_context_callback context = { .callback = context_wrapper,
                                   .free = free_user_data };

  if (!PyArg_ParseTuple (args, "OOO:nbd_opt_list_meta_context_queries",
                         &py_h, &py_queries, &py_context_fn))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;
  queries = nbd_internal_py_get_string_list (py_queries);
  if (!queries) goto out;
  context.user_data = context_user_data = alloc_user_data ();
  if (context_user_data == NULL) goto out;
  if (!PyCallable_Check (py_context_fn)) {
    PyErr_SetString (PyExc_TypeError,
                     "callback parameter context is not callable");
    goto out;
  }
  /* Increment refcount since pointer may be saved by libnbd. */
  Py_INCREF (py_context_fn);
  context_user_data->fn = py_context_fn;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_opt_list_meta_context_queries (h, queries, context);
  Py_END_ALLOW_THREADS;
  context_user_data = NULL;
  if (ret == -1) {
    raise_exception ();
    goto out;
  }
  py_ret = PyLong_FromLong (ret);

 out:
  nbd_internal_py_free_string_list (queries);
  free_user_data (context_user_data);
  return py_ret;
}

PyObject *
nbd_internal_py_opt_set_meta_context (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int ret;
  PyObject *py_ret = NULL;
  struct user_data *context_user_data = NULL;
  PyObject *py_context_fn;
  nbd_context_callback context = { .callback = context_wrapper,
                                   .free = free_user_data };

  if (!PyArg_ParseTuple (args, "OO:nbd_opt_set_meta_context", &py_h,
                         &py_context_fn))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;
  context.user_data = context_user_data = alloc_user_data ();
  if (context_user_data == NULL) goto out;
  if (!PyCallable_Check (py_context_fn)) {
    PyErr_SetString (PyExc_TypeError,
                     "callback parameter context is not callable");
    goto out;
  }
  /* Increment refcount since pointer may be saved by libnbd. */
  Py_INCREF (py_context_fn);
  context_user_data->fn = py_context_fn;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_opt_set_meta_context (h, context);
  Py_END_ALLOW_THREADS;
  context_user_data = NULL;
  if (ret == -1) {
    raise_exception ();
    goto out;
  }
  py_ret = PyLong_FromLong (ret);

 out:
  free_user_data (context_user_data);
  return py_ret;
}

PyObject *
nbd_internal_py_opt_set_meta_context_queries (PyObject *self,
                                              PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int ret;
  PyObject *py_ret = NULL;
  PyObject *py_queries;
  char **queries = NULL;
  struct user_data *context_user_data = NULL;
  PyObject *py_context_fn;
  nbd_context_callback context = { .callback = context_wrapper,
                                   .free = free_user_data };

  if (!PyArg_ParseTuple (args, "OOO:nbd_opt_set_meta_context_queries",
                         &py_h, &py_queries, &py_context_fn))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;
  queries = nbd_internal_py_get_string_list (py_queries);
  if (!queries) goto out;
  context.user_data = context_user_data = alloc_user_data ();
  if (context_user_data == NULL) goto out;
  if (!PyCallable_Check (py_context_fn)) {
    PyErr_SetString (PyExc_TypeError,
                     "callback parameter context is not callable");
    goto out;
  }
  /* Increment refcount since pointer may be saved by libnbd. */
  Py_INCREF (py_context_fn);
  context_user_data->fn = py_context_fn;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_opt_set_meta_context_queries (h, queries, context);
  Py_END_ALLOW_THREADS;
  context_user_data = NULL;
  if (ret == -1) {
    raise_exception ();
    goto out;
  }
  py_ret = PyLong_FromLong (ret);

 out:
  nbd_internal_py_free_string_list (queries);
  free_user_data (context_user_data);
  return py_ret;
}

PyObject *
nbd_internal_py_add_meta_context (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int ret;
  PyObject *py_ret = NULL;
  const char *name;

  if (!PyArg_ParseTuple (args, "Os:nbd_add_meta_context", &py_h, &name))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_add_meta_context (h, name);
  Py_END_ALLOW_THREADS;
  if (ret == -1) {
    raise_exception ();
    goto out;
  }
  py_ret = Py_None;
  Py_INCREF (py_ret);

 out:
  return py_ret;
}

PyObject *
nbd_internal_py_get_nr_meta_contexts (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  ssize_t ret;
  PyObject *py_ret = NULL;

  if (!PyArg_ParseTuple (args, "O:nbd_get_nr_meta_contexts", &py_h))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_get_nr_meta_contexts (h);
  Py_END_ALLOW_THREADS;
  if (ret == -1) {
    raise_exception ();
    goto out;
  }
  py_ret = PyLong_FromLong (ret);

 out:
  return py_ret;
}

PyObject *
nbd_internal_py_get_meta_context (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  char * ret;
  PyObject *py_ret = NULL;
  Py_ssize_t i;

  if (!PyArg_ParseTuple (args, "On:nbd_get_meta_context", &py_h, &i))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_get_meta_context (h, (size_t)i);
  Py_END_ALLOW_THREADS;
  if (ret == NULL) {
    raise_exception ();
    goto out;
  }
  py_ret = PyUnicode_FromString (ret);
  free (ret);

 out:
  return py_ret;
}

PyObject *
nbd_internal_py_clear_meta_contexts (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int ret;
  PyObject *py_ret = NULL;

  if (!PyArg_ParseTuple (args, "O:nbd_clear_meta_contexts", &py_h))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_clear_meta_contexts (h);
  Py_END_ALLOW_THREADS;
  if (ret == -1) {
    raise_exception ();
    goto out;
  }
  py_ret = Py_None;
  Py_INCREF (py_ret);

 out:
  return py_ret;
}

PyObject *
nbd_internal_py_set_uri_allow_transports (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int ret;
  PyObject *py_ret = NULL;
  uint32_t mask_u32;
  unsigned int mask; /* really uint32_t */

  if (!PyArg_ParseTuple (args, "OI:nbd_set_uri_allow_transports", &py_h,
                         &mask))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;
  mask_u32 = mask;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_set_uri_allow_transports (h, mask_u32);
  Py_END_ALLOW_THREADS;
  if (ret == -1) {
    raise_exception ();
    goto out;
  }
  py_ret = Py_None;
  Py_INCREF (py_ret);

 out:
  return py_ret;
}

PyObject *
nbd_internal_py_set_uri_allow_tls (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int ret;
  PyObject *py_ret = NULL;
  int tls;

  if (!PyArg_ParseTuple (args, "Oi:nbd_set_uri_allow_tls", &py_h, &tls))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_set_uri_allow_tls (h, tls);
  Py_END_ALLOW_THREADS;
  if (ret == -1) {
    raise_exception ();
    goto out;
  }
  py_ret = Py_None;
  Py_INCREF (py_ret);

 out:
  return py_ret;
}

PyObject *
nbd_internal_py_set_uri_allow_local_file (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int ret;
  PyObject *py_ret = NULL;
  int allow;

  if (!PyArg_ParseTuple (args, "Op:nbd_set_uri_allow_local_file", &py_h,
                         &allow))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_set_uri_allow_local_file (h, allow);
  Py_END_ALLOW_THREADS;
  if (ret == -1) {
    raise_exception ();
    goto out;
  }
  py_ret = Py_None;
  Py_INCREF (py_ret);

 out:
  return py_ret;
}

PyObject *
nbd_internal_py_connect_uri (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int ret;
  PyObject *py_ret = NULL;
  const char *uri;

  if (!PyArg_ParseTuple (args, "Os:nbd_connect_uri", &py_h, &uri))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_connect_uri (h, uri);
  Py_END_ALLOW_THREADS;
  if (ret == -1) {
    raise_exception ();
    goto out;
  }
  py_ret = Py_None;
  Py_INCREF (py_ret);

 out:
  return py_ret;
}

PyObject *
nbd_internal_py_connect_unix (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int ret;
  PyObject *py_ret = NULL;
  PyObject *py_unixsocket = NULL;
  char *unixsocket = NULL;

  if (!PyArg_ParseTuple (args, "OO&:nbd_connect_unix", &py_h,
                         PyUnicode_FSConverter, &py_unixsocket))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;
  unixsocket = PyBytes_AS_STRING (py_unixsocket);
  assert (unixsocket != NULL);

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_connect_unix (h, unixsocket);
  Py_END_ALLOW_THREADS;
  if (ret == -1) {
    raise_exception ();
    goto out;
  }
  py_ret = Py_None;
  Py_INCREF (py_ret);

 out:
  Py_XDECREF (py_unixsocket);
  return py_ret;
}

PyObject *
nbd_internal_py_connect_vsock (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int ret;
  PyObject *py_ret = NULL;
  uint32_t cid_u32;
  unsigned int cid; /* really uint32_t */
  uint32_t port_u32;
  unsigned int port; /* really uint32_t */

  if (!PyArg_ParseTuple (args, "OII:nbd_connect_vsock", &py_h, &cid, &port))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;
  cid_u32 = cid;
  port_u32 = port;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_connect_vsock (h, cid_u32, port_u32);
  Py_END_ALLOW_THREADS;
  if (ret == -1) {
    raise_exception ();
    goto out;
  }
  py_ret = Py_None;
  Py_INCREF (py_ret);

 out:
  return py_ret;
}

PyObject *
nbd_internal_py_connect_tcp (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int ret;
  PyObject *py_ret = NULL;
  const char *hostname;
  const char *port;

  if (!PyArg_ParseTuple (args, "Oss:nbd_connect_tcp", &py_h, &hostname,
                         &port))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_connect_tcp (h, hostname, port);
  Py_END_ALLOW_THREADS;
  if (ret == -1) {
    raise_exception ();
    goto out;
  }
  py_ret = Py_None;
  Py_INCREF (py_ret);

 out:
  return py_ret;
}

PyObject *
nbd_internal_py_connect_socket (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int ret;
  PyObject *py_ret = NULL;
  int sock;

  if (!PyArg_ParseTuple (args, "Oi:nbd_connect_socket", &py_h, &sock))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_connect_socket (h, sock);
  Py_END_ALLOW_THREADS;
  if (ret == -1) {
    raise_exception ();
    goto out;
  }
  py_ret = Py_None;
  Py_INCREF (py_ret);

 out:
  return py_ret;
}

PyObject *
nbd_internal_py_connect_command (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int ret;
  PyObject *py_ret = NULL;
  PyObject *py_argv;
  char **argv = NULL;

  if (!PyArg_ParseTuple (args, "OO:nbd_connect_command", &py_h, &py_argv))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;
  argv = nbd_internal_py_get_string_list (py_argv);
  if (!argv) goto out;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_connect_command (h, argv);
  Py_END_ALLOW_THREADS;
  if (ret == -1) {
    raise_exception ();
    goto out;
  }
  py_ret = Py_None;
  Py_INCREF (py_ret);

 out:
  nbd_internal_py_free_string_list (argv);
  return py_ret;
}

PyObject *
nbd_internal_py_connect_systemd_socket_activation (PyObject *self,
                                                   PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int ret;
  PyObject *py_ret = NULL;
  PyObject *py_argv;
  char **argv = NULL;

  if (!PyArg_ParseTuple (args, "OO:nbd_connect_systemd_socket_activation",
                         &py_h, &py_argv))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;
  argv = nbd_internal_py_get_string_list (py_argv);
  if (!argv) goto out;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_connect_systemd_socket_activation (h, argv);
  Py_END_ALLOW_THREADS;
  if (ret == -1) {
    raise_exception ();
    goto out;
  }
  py_ret = Py_None;
  Py_INCREF (py_ret);

 out:
  nbd_internal_py_free_string_list (argv);
  return py_ret;
}

PyObject *
nbd_internal_py_set_socket_activation_name (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int ret;
  PyObject *py_ret = NULL;
  const char *socket_name;

  if (!PyArg_ParseTuple (args, "Os:nbd_set_socket_activation_name", &py_h,
                         &socket_name))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_set_socket_activation_name (h, socket_name);
  Py_END_ALLOW_THREADS;
  if (ret == -1) {
    raise_exception ();
    goto out;
  }
  py_ret = Py_None;
  Py_INCREF (py_ret);

 out:
  return py_ret;
}

PyObject *
nbd_internal_py_get_socket_activation_name (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  char * ret;
  PyObject *py_ret = NULL;

  if (!PyArg_ParseTuple (args, "O:nbd_get_socket_activation_name", &py_h))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_get_socket_activation_name (h);
  Py_END_ALLOW_THREADS;
  if (ret == NULL) {
    raise_exception ();
    goto out;
  }
  py_ret = PyUnicode_FromString (ret);
  free (ret);

 out:
  return py_ret;
}

PyObject *
nbd_internal_py_is_read_only (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int ret;
  PyObject *py_ret = NULL;

  if (!PyArg_ParseTuple (args, "O:nbd_is_read_only", &py_h))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_is_read_only (h);
  Py_END_ALLOW_THREADS;
  if (ret == -1) {
    raise_exception ();
    goto out;
  }
  py_ret = ret ? Py_True : Py_False;
  Py_INCREF (py_ret);

 out:
  return py_ret;
}

PyObject *
nbd_internal_py_can_flush (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int ret;
  PyObject *py_ret = NULL;

  if (!PyArg_ParseTuple (args, "O:nbd_can_flush", &py_h))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_can_flush (h);
  Py_END_ALLOW_THREADS;
  if (ret == -1) {
    raise_exception ();
    goto out;
  }
  py_ret = ret ? Py_True : Py_False;
  Py_INCREF (py_ret);

 out:
  return py_ret;
}

PyObject *
nbd_internal_py_can_fua (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int ret;
  PyObject *py_ret = NULL;

  if (!PyArg_ParseTuple (args, "O:nbd_can_fua", &py_h))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_can_fua (h);
  Py_END_ALLOW_THREADS;
  if (ret == -1) {
    raise_exception ();
    goto out;
  }
  py_ret = ret ? Py_True : Py_False;
  Py_INCREF (py_ret);

 out:
  return py_ret;
}

PyObject *
nbd_internal_py_is_rotational (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int ret;
  PyObject *py_ret = NULL;

  if (!PyArg_ParseTuple (args, "O:nbd_is_rotational", &py_h))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_is_rotational (h);
  Py_END_ALLOW_THREADS;
  if (ret == -1) {
    raise_exception ();
    goto out;
  }
  py_ret = ret ? Py_True : Py_False;
  Py_INCREF (py_ret);

 out:
  return py_ret;
}

PyObject *
nbd_internal_py_can_trim (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int ret;
  PyObject *py_ret = NULL;

  if (!PyArg_ParseTuple (args, "O:nbd_can_trim", &py_h))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_can_trim (h);
  Py_END_ALLOW_THREADS;
  if (ret == -1) {
    raise_exception ();
    goto out;
  }
  py_ret = ret ? Py_True : Py_False;
  Py_INCREF (py_ret);

 out:
  return py_ret;
}

PyObject *
nbd_internal_py_can_zero (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int ret;
  PyObject *py_ret = NULL;

  if (!PyArg_ParseTuple (args, "O:nbd_can_zero", &py_h))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_can_zero (h);
  Py_END_ALLOW_THREADS;
  if (ret == -1) {
    raise_exception ();
    goto out;
  }
  py_ret = ret ? Py_True : Py_False;
  Py_INCREF (py_ret);

 out:
  return py_ret;
}

PyObject *
nbd_internal_py_can_fast_zero (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int ret;
  PyObject *py_ret = NULL;

  if (!PyArg_ParseTuple (args, "O:nbd_can_fast_zero", &py_h))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_can_fast_zero (h);
  Py_END_ALLOW_THREADS;
  if (ret == -1) {
    raise_exception ();
    goto out;
  }
  py_ret = ret ? Py_True : Py_False;
  Py_INCREF (py_ret);

 out:
  return py_ret;
}

PyObject *
nbd_internal_py_can_block_status_payload (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int ret;
  PyObject *py_ret = NULL;

  if (!PyArg_ParseTuple (args, "O:nbd_can_block_status_payload", &py_h))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_can_block_status_payload (h);
  Py_END_ALLOW_THREADS;
  if (ret == -1) {
    raise_exception ();
    goto out;
  }
  py_ret = ret ? Py_True : Py_False;
  Py_INCREF (py_ret);

 out:
  return py_ret;
}

PyObject *
nbd_internal_py_can_df (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int ret;
  PyObject *py_ret = NULL;

  if (!PyArg_ParseTuple (args, "O:nbd_can_df", &py_h))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_can_df (h);
  Py_END_ALLOW_THREADS;
  if (ret == -1) {
    raise_exception ();
    goto out;
  }
  py_ret = ret ? Py_True : Py_False;
  Py_INCREF (py_ret);

 out:
  return py_ret;
}

PyObject *
nbd_internal_py_can_multi_conn (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int ret;
  PyObject *py_ret = NULL;

  if (!PyArg_ParseTuple (args, "O:nbd_can_multi_conn", &py_h))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_can_multi_conn (h);
  Py_END_ALLOW_THREADS;
  if (ret == -1) {
    raise_exception ();
    goto out;
  }
  py_ret = ret ? Py_True : Py_False;
  Py_INCREF (py_ret);

 out:
  return py_ret;
}

PyObject *
nbd_internal_py_can_cache (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int ret;
  PyObject *py_ret = NULL;

  if (!PyArg_ParseTuple (args, "O:nbd_can_cache", &py_h))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_can_cache (h);
  Py_END_ALLOW_THREADS;
  if (ret == -1) {
    raise_exception ();
    goto out;
  }
  py_ret = ret ? Py_True : Py_False;
  Py_INCREF (py_ret);

 out:
  return py_ret;
}

PyObject *
nbd_internal_py_can_meta_context (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int ret;
  PyObject *py_ret = NULL;
  const char *metacontext;

  if (!PyArg_ParseTuple (args, "Os:nbd_can_meta_context", &py_h,
                         &metacontext))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_can_meta_context (h, metacontext);
  Py_END_ALLOW_THREADS;
  if (ret == -1) {
    raise_exception ();
    goto out;
  }
  py_ret = ret ? Py_True : Py_False;
  Py_INCREF (py_ret);

 out:
  return py_ret;
}

PyObject *
nbd_internal_py_get_protocol (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  const char * ret;
  PyObject *py_ret = NULL;

  if (!PyArg_ParseTuple (args, "O:nbd_get_protocol", &py_h))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_get_protocol (h);
  Py_END_ALLOW_THREADS;
  if (ret == NULL) {
    raise_exception ();
    goto out;
  }
  py_ret = PyUnicode_FromString (ret);

 out:
  return py_ret;
}

PyObject *
nbd_internal_py_get_size (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int64_t ret;
  PyObject *py_ret = NULL;

  if (!PyArg_ParseTuple (args, "O:nbd_get_size", &py_h))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_get_size (h);
  Py_END_ALLOW_THREADS;
  if (ret == -1) {
    raise_exception ();
    goto out;
  }
  py_ret = PyLong_FromLongLong (ret);

 out:
  return py_ret;
}

PyObject *
nbd_internal_py_get_block_size (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int64_t ret;
  PyObject *py_ret = NULL;
  int size_type;

  if (!PyArg_ParseTuple (args, "Oi:nbd_get_block_size", &py_h, &size_type))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_get_block_size (h, size_type);
  Py_END_ALLOW_THREADS;
  if (ret == -1) {
    raise_exception ();
    goto out;
  }
  py_ret = PyLong_FromLongLong (ret);

 out:
  return py_ret;
}

PyObject *
nbd_internal_py_pread (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int ret;
  PyObject *py_ret = NULL;
  PyObject *buf = NULL;
  Py_ssize_t count;
  uint64_t offset_u64;
  unsigned long long offset; /* really uint64_t */
  uint32_t flags_u32;
  unsigned int flags; /* really uint32_t */

  if (!PyArg_ParseTuple (args, "OnKI:nbd_pread", &py_h, &count, &offset,
                         &flags))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;
  flags_u32 = flags;
  buf = PyByteArray_FromStringAndSize (NULL, count);
  if (buf == NULL) goto out;
  offset_u64 = offset;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_pread (h, PyByteArray_AS_STRING (buf), count, offset_u64,
                   flags_u32);
  Py_END_ALLOW_THREADS;
  if (ret == -1) {
    raise_exception ();
    goto out;
  }
  py_ret = buf;
  buf = NULL;

 out:
  Py_XDECREF (buf);
  return py_ret;
}

PyObject *
nbd_internal_py_pread_structured (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int ret;
  PyObject *py_ret = NULL;
  PyObject *buf = NULL;
  Py_ssize_t count;
  uint64_t offset_u64;
  unsigned long long offset; /* really uint64_t */
  struct user_data *chunk_user_data = NULL;
  PyObject *py_chunk_fn;
  nbd_chunk_callback chunk = { .callback = chunk_wrapper,
                               .free = free_user_data };
  uint32_t flags_u32;
  unsigned int flags; /* really uint32_t */

  if (!PyArg_ParseTuple (args, "OnKOI:nbd_pread_structured", &py_h, &count,
                         &offset, &py_chunk_fn, &flags))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;
  flags_u32 = flags;
  buf = PyByteArray_FromStringAndSize (NULL, count);
  if (buf == NULL) goto out;
  offset_u64 = offset;
  chunk.user_data = chunk_user_data = alloc_user_data ();
  if (chunk_user_data == NULL) goto out;
  if (!PyCallable_Check (py_chunk_fn)) {
    PyErr_SetString (PyExc_TypeError,
                     "callback parameter chunk is not callable");
    goto out;
  }
  /* Increment refcount since pointer may be saved by libnbd. */
  Py_INCREF (py_chunk_fn);
  chunk_user_data->fn = py_chunk_fn;
  chunk_user_data->view = nbd_internal_py_get_aio_view (buf, PyBUF_WRITE);
  if (!chunk_user_data->view) goto out;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_pread_structured (h, PyByteArray_AS_STRING (buf), count,
                              offset_u64, chunk, flags_u32);
  Py_END_ALLOW_THREADS;
  chunk_user_data = NULL;
  if (ret == -1) {
    raise_exception ();
    goto out;
  }
  py_ret = buf;
  buf = NULL;

 out:
  Py_XDECREF (buf);
  free_user_data (chunk_user_data);
  return py_ret;
}

PyObject *
nbd_internal_py_pwrite (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int ret;
  PyObject *py_ret = NULL;
  Py_buffer buf = { .obj = NULL };
  uint64_t offset_u64;
  unsigned long long offset; /* really uint64_t */
  uint32_t flags_u32;
  unsigned int flags; /* really uint32_t */

  if (!PyArg_ParseTuple (args, "Oy*KI:nbd_pwrite", &py_h, &buf, &offset,
                         &flags))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;
  flags_u32 = flags;
  offset_u64 = offset;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_pwrite (h, buf.buf, buf.len, offset_u64, flags_u32);
  Py_END_ALLOW_THREADS;
  if (ret == -1) {
    raise_exception ();
    goto out;
  }
  py_ret = Py_None;
  Py_INCREF (py_ret);

 out:
  if (buf.obj)
    PyBuffer_Release (&buf);
  return py_ret;
}

PyObject *
nbd_internal_py_shutdown (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int ret;
  PyObject *py_ret = NULL;
  uint32_t flags_u32;
  unsigned int flags; /* really uint32_t */

  if (!PyArg_ParseTuple (args, "OI:nbd_shutdown", &py_h, &flags))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;
  flags_u32 = flags;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_shutdown (h, flags_u32);
  Py_END_ALLOW_THREADS;
  if (ret == -1) {
    raise_exception ();
    goto out;
  }
  py_ret = Py_None;
  Py_INCREF (py_ret);

 out:
  return py_ret;
}

PyObject *
nbd_internal_py_flush (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int ret;
  PyObject *py_ret = NULL;
  uint32_t flags_u32;
  unsigned int flags; /* really uint32_t */

  if (!PyArg_ParseTuple (args, "OI:nbd_flush", &py_h, &flags))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;
  flags_u32 = flags;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_flush (h, flags_u32);
  Py_END_ALLOW_THREADS;
  if (ret == -1) {
    raise_exception ();
    goto out;
  }
  py_ret = Py_None;
  Py_INCREF (py_ret);

 out:
  return py_ret;
}

PyObject *
nbd_internal_py_trim (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int ret;
  PyObject *py_ret = NULL;
  uint64_t count_u64;
  unsigned long long count; /* really uint64_t */
  uint64_t offset_u64;
  unsigned long long offset; /* really uint64_t */
  uint32_t flags_u32;
  unsigned int flags; /* really uint32_t */

  if (!PyArg_ParseTuple (args, "OKKI:nbd_trim", &py_h, &count, &offset,
                         &flags))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;
  flags_u32 = flags;
  count_u64 = count;
  offset_u64 = offset;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_trim (h, count_u64, offset_u64, flags_u32);
  Py_END_ALLOW_THREADS;
  if (ret == -1) {
    raise_exception ();
    goto out;
  }
  py_ret = Py_None;
  Py_INCREF (py_ret);

 out:
  return py_ret;
}

PyObject *
nbd_internal_py_cache (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int ret;
  PyObject *py_ret = NULL;
  uint64_t count_u64;
  unsigned long long count; /* really uint64_t */
  uint64_t offset_u64;
  unsigned long long offset; /* really uint64_t */
  uint32_t flags_u32;
  unsigned int flags; /* really uint32_t */

  if (!PyArg_ParseTuple (args, "OKKI:nbd_cache", &py_h, &count, &offset,
                         &flags))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;
  flags_u32 = flags;
  count_u64 = count;
  offset_u64 = offset;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_cache (h, count_u64, offset_u64, flags_u32);
  Py_END_ALLOW_THREADS;
  if (ret == -1) {
    raise_exception ();
    goto out;
  }
  py_ret = Py_None;
  Py_INCREF (py_ret);

 out:
  return py_ret;
}

PyObject *
nbd_internal_py_zero (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int ret;
  PyObject *py_ret = NULL;
  uint64_t count_u64;
  unsigned long long count; /* really uint64_t */
  uint64_t offset_u64;
  unsigned long long offset; /* really uint64_t */
  uint32_t flags_u32;
  unsigned int flags; /* really uint32_t */

  if (!PyArg_ParseTuple (args, "OKKI:nbd_zero", &py_h, &count, &offset,
                         &flags))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;
  flags_u32 = flags;
  count_u64 = count;
  offset_u64 = offset;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_zero (h, count_u64, offset_u64, flags_u32);
  Py_END_ALLOW_THREADS;
  if (ret == -1) {
    raise_exception ();
    goto out;
  }
  py_ret = Py_None;
  Py_INCREF (py_ret);

 out:
  return py_ret;
}

PyObject *
nbd_internal_py_block_status (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int ret;
  PyObject *py_ret = NULL;
  uint64_t count_u64;
  unsigned long long count; /* really uint64_t */
  uint64_t offset_u64;
  unsigned long long offset; /* really uint64_t */
  struct user_data *extent_user_data = NULL;
  PyObject *py_extent_fn;
  nbd_extent_callback extent = { .callback = extent_wrapper,
                                 .free = free_user_data };
  uint32_t flags_u32;
  unsigned int flags; /* really uint32_t */

  if (!PyArg_ParseTuple (args, "OKKOI:nbd_block_status", &py_h, &count,
                         &offset, &py_extent_fn, &flags))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;
  flags_u32 = flags;
  count_u64 = count;
  offset_u64 = offset;
  extent.user_data = extent_user_data = alloc_user_data ();
  if (extent_user_data == NULL) goto out;
  if (!PyCallable_Check (py_extent_fn)) {
    PyErr_SetString (PyExc_TypeError,
                     "callback parameter extent is not callable");
    goto out;
  }
  /* Increment refcount since pointer may be saved by libnbd. */
  Py_INCREF (py_extent_fn);
  extent_user_data->fn = py_extent_fn;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_block_status (h, count_u64, offset_u64, extent, flags_u32);
  Py_END_ALLOW_THREADS;
  extent_user_data = NULL;
  if (ret == -1) {
    raise_exception ();
    goto out;
  }
  py_ret = Py_None;
  Py_INCREF (py_ret);

 out:
  free_user_data (extent_user_data);
  return py_ret;
}

PyObject *
nbd_internal_py_block_status_64 (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int ret;
  PyObject *py_ret = NULL;
  uint64_t count_u64;
  unsigned long long count; /* really uint64_t */
  uint64_t offset_u64;
  unsigned long long offset; /* really uint64_t */
  struct user_data *extent64_user_data = NULL;
  PyObject *py_extent64_fn;
  nbd_extent64_callback extent64 = { .callback = extent64_wrapper,
                                     .free = free_user_data };
  uint32_t flags_u32;
  unsigned int flags; /* really uint32_t */

  if (!PyArg_ParseTuple (args, "OKKOI:nbd_block_status_64", &py_h, &count,
                         &offset, &py_extent64_fn, &flags))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;
  flags_u32 = flags;
  count_u64 = count;
  offset_u64 = offset;
  extent64.user_data = extent64_user_data = alloc_user_data ();
  if (extent64_user_data == NULL) goto out;
  if (!PyCallable_Check (py_extent64_fn)) {
    PyErr_SetString (PyExc_TypeError,
                     "callback parameter extent64 is not callable");
    goto out;
  }
  /* Increment refcount since pointer may be saved by libnbd. */
  Py_INCREF (py_extent64_fn);
  extent64_user_data->fn = py_extent64_fn;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_block_status_64 (h, count_u64, offset_u64, extent64, flags_u32);
  Py_END_ALLOW_THREADS;
  extent64_user_data = NULL;
  if (ret == -1) {
    raise_exception ();
    goto out;
  }
  py_ret = Py_None;
  Py_INCREF (py_ret);

 out:
  free_user_data (extent64_user_data);
  return py_ret;
}

PyObject *
nbd_internal_py_block_status_filter (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int ret;
  PyObject *py_ret = NULL;
  uint64_t count_u64;
  unsigned long long count; /* really uint64_t */
  uint64_t offset_u64;
  unsigned long long offset; /* really uint64_t */
  PyObject *py_contexts;
  char **contexts = NULL;
  struct user_data *extent64_user_data = NULL;
  PyObject *py_extent64_fn;
  nbd_extent64_callback extent64 = { .callback = extent64_wrapper,
                                     .free = free_user_data };
  uint32_t flags_u32;
  unsigned int flags; /* really uint32_t */

  if (!PyArg_ParseTuple (args, "OKKOOI:nbd_block_status_filter", &py_h,
                         &count, &offset, &py_contexts, &py_extent64_fn,
                         &flags))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;
  flags_u32 = flags;
  count_u64 = count;
  offset_u64 = offset;
  contexts = nbd_internal_py_get_string_list (py_contexts);
  if (!contexts) goto out;
  extent64.user_data = extent64_user_data = alloc_user_data ();
  if (extent64_user_data == NULL) goto out;
  if (!PyCallable_Check (py_extent64_fn)) {
    PyErr_SetString (PyExc_TypeError,
                     "callback parameter extent64 is not callable");
    goto out;
  }
  /* Increment refcount since pointer may be saved by libnbd. */
  Py_INCREF (py_extent64_fn);
  extent64_user_data->fn = py_extent64_fn;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_block_status_filter (h, count_u64, offset_u64, contexts,
                                 extent64, flags_u32);
  Py_END_ALLOW_THREADS;
  extent64_user_data = NULL;
  if (ret == -1) {
    raise_exception ();
    goto out;
  }
  py_ret = Py_None;
  Py_INCREF (py_ret);

 out:
  nbd_internal_py_free_string_list (contexts);
  free_user_data (extent64_user_data);
  return py_ret;
}

PyObject *
nbd_internal_py_poll (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int ret;
  PyObject *py_ret = NULL;
  int timeout;

  if (!PyArg_ParseTuple (args, "Oi:nbd_poll", &py_h, &timeout))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_poll (h, timeout);
  Py_END_ALLOW_THREADS;
  if (ret == -1) {
    raise_exception ();
    goto out;
  }
  py_ret = PyLong_FromLong (ret);

 out:
  return py_ret;
}

PyObject *
nbd_internal_py_poll2 (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int ret;
  PyObject *py_ret = NULL;
  int fd;
  int timeout;

  if (!PyArg_ParseTuple (args, "Oii:nbd_poll2", &py_h, &fd, &timeout))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_poll2 (h, fd, timeout);
  Py_END_ALLOW_THREADS;
  if (ret == -1) {
    raise_exception ();
    goto out;
  }
  py_ret = PyLong_FromLong (ret);

 out:
  return py_ret;
}

PyObject *
nbd_internal_py_aio_connect (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int ret;
  PyObject *py_ret = NULL;
  PyObject *addr;
  struct sockaddr_storage addr_sa;
  socklen_t addr_len;

  if (!PyArg_ParseTuple (args, "OO:nbd_aio_connect", &py_h, &addr))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;
  if (nbd_internal_py_get_sockaddr (addr, &addr_sa, &addr_len) == -1)
    goto out;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_aio_connect (h, (struct sockaddr *)&addr_sa, addr_len);
  Py_END_ALLOW_THREADS;
  if (ret == -1) {
    raise_exception ();
    goto out;
  }
  py_ret = Py_None;
  Py_INCREF (py_ret);

 out:
  return py_ret;
}

PyObject *
nbd_internal_py_aio_connect_uri (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int ret;
  PyObject *py_ret = NULL;
  const char *uri;

  if (!PyArg_ParseTuple (args, "Os:nbd_aio_connect_uri", &py_h, &uri))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_aio_connect_uri (h, uri);
  Py_END_ALLOW_THREADS;
  if (ret == -1) {
    raise_exception ();
    goto out;
  }
  py_ret = Py_None;
  Py_INCREF (py_ret);

 out:
  return py_ret;
}

PyObject *
nbd_internal_py_aio_connect_unix (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int ret;
  PyObject *py_ret = NULL;
  PyObject *py_unixsocket = NULL;
  char *unixsocket = NULL;

  if (!PyArg_ParseTuple (args, "OO&:nbd_aio_connect_unix", &py_h,
                         PyUnicode_FSConverter, &py_unixsocket))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;
  unixsocket = PyBytes_AS_STRING (py_unixsocket);
  assert (unixsocket != NULL);

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_aio_connect_unix (h, unixsocket);
  Py_END_ALLOW_THREADS;
  if (ret == -1) {
    raise_exception ();
    goto out;
  }
  py_ret = Py_None;
  Py_INCREF (py_ret);

 out:
  Py_XDECREF (py_unixsocket);
  return py_ret;
}

PyObject *
nbd_internal_py_aio_connect_vsock (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int ret;
  PyObject *py_ret = NULL;
  uint32_t cid_u32;
  unsigned int cid; /* really uint32_t */
  uint32_t port_u32;
  unsigned int port; /* really uint32_t */

  if (!PyArg_ParseTuple (args, "OII:nbd_aio_connect_vsock", &py_h, &cid,
                         &port))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;
  cid_u32 = cid;
  port_u32 = port;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_aio_connect_vsock (h, cid_u32, port_u32);
  Py_END_ALLOW_THREADS;
  if (ret == -1) {
    raise_exception ();
    goto out;
  }
  py_ret = Py_None;
  Py_INCREF (py_ret);

 out:
  return py_ret;
}

PyObject *
nbd_internal_py_aio_connect_tcp (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int ret;
  PyObject *py_ret = NULL;
  const char *hostname;
  const char *port;

  if (!PyArg_ParseTuple (args, "Oss:nbd_aio_connect_tcp", &py_h, &hostname,
                         &port))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_aio_connect_tcp (h, hostname, port);
  Py_END_ALLOW_THREADS;
  if (ret == -1) {
    raise_exception ();
    goto out;
  }
  py_ret = Py_None;
  Py_INCREF (py_ret);

 out:
  return py_ret;
}

PyObject *
nbd_internal_py_aio_connect_socket (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int ret;
  PyObject *py_ret = NULL;
  int sock;

  if (!PyArg_ParseTuple (args, "Oi:nbd_aio_connect_socket", &py_h, &sock))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_aio_connect_socket (h, sock);
  Py_END_ALLOW_THREADS;
  if (ret == -1) {
    raise_exception ();
    goto out;
  }
  py_ret = Py_None;
  Py_INCREF (py_ret);

 out:
  return py_ret;
}

PyObject *
nbd_internal_py_aio_connect_command (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int ret;
  PyObject *py_ret = NULL;
  PyObject *py_argv;
  char **argv = NULL;

  if (!PyArg_ParseTuple (args, "OO:nbd_aio_connect_command", &py_h,
                         &py_argv))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;
  argv = nbd_internal_py_get_string_list (py_argv);
  if (!argv) goto out;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_aio_connect_command (h, argv);
  Py_END_ALLOW_THREADS;
  if (ret == -1) {
    raise_exception ();
    goto out;
  }
  py_ret = Py_None;
  Py_INCREF (py_ret);

 out:
  nbd_internal_py_free_string_list (argv);
  return py_ret;
}

PyObject *
nbd_internal_py_aio_connect_systemd_socket_activation (PyObject *self,
                                                       PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int ret;
  PyObject *py_ret = NULL;
  PyObject *py_argv;
  char **argv = NULL;

  if (!PyArg_ParseTuple (args,
                         "OO:nbd_aio_connect_systemd_socket_activation",
                         &py_h, &py_argv))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;
  argv = nbd_internal_py_get_string_list (py_argv);
  if (!argv) goto out;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_aio_connect_systemd_socket_activation (h, argv);
  Py_END_ALLOW_THREADS;
  if (ret == -1) {
    raise_exception ();
    goto out;
  }
  py_ret = Py_None;
  Py_INCREF (py_ret);

 out:
  nbd_internal_py_free_string_list (argv);
  return py_ret;
}

PyObject *
nbd_internal_py_aio_opt_go (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int ret;
  PyObject *py_ret = NULL;
  struct user_data *completion_user_data = NULL;
  PyObject *py_completion_fn;
  nbd_completion_callback completion = { .callback = completion_wrapper,
                                         .free = free_user_data };

  if (!PyArg_ParseTuple (args, "OO:nbd_aio_opt_go", &py_h,
                         &py_completion_fn))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;
  completion.user_data = completion_user_data = alloc_user_data ();
  if (completion_user_data == NULL) goto out;
  if (py_completion_fn != Py_None) {
    if (!PyCallable_Check (py_completion_fn)) {
      PyErr_SetString (PyExc_TypeError,
                       "callback parameter completion is not callable");
      goto out;
    }
    /* Increment refcount since pointer may be saved by libnbd. */
    Py_INCREF (py_completion_fn);
    completion_user_data->fn = py_completion_fn;
  }
  else
    completion.callback = NULL; /* we're not going to call it */

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_aio_opt_go (h, completion);
  Py_END_ALLOW_THREADS;
  completion_user_data = NULL;
  if (ret == -1) {
    raise_exception ();
    goto out;
  }
  py_ret = Py_None;
  Py_INCREF (py_ret);

 out:
  free_user_data (completion_user_data);
  return py_ret;
}

PyObject *
nbd_internal_py_aio_opt_abort (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int ret;
  PyObject *py_ret = NULL;

  if (!PyArg_ParseTuple (args, "O:nbd_aio_opt_abort", &py_h))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_aio_opt_abort (h);
  Py_END_ALLOW_THREADS;
  if (ret == -1) {
    raise_exception ();
    goto out;
  }
  py_ret = Py_None;
  Py_INCREF (py_ret);

 out:
  return py_ret;
}

PyObject *
nbd_internal_py_aio_opt_starttls (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int ret;
  PyObject *py_ret = NULL;
  struct user_data *completion_user_data = NULL;
  PyObject *py_completion_fn;
  nbd_completion_callback completion = { .callback = completion_wrapper,
                                         .free = free_user_data };

  if (!PyArg_ParseTuple (args, "OO:nbd_aio_opt_starttls", &py_h,
                         &py_completion_fn))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;
  completion.user_data = completion_user_data = alloc_user_data ();
  if (completion_user_data == NULL) goto out;
  if (py_completion_fn != Py_None) {
    if (!PyCallable_Check (py_completion_fn)) {
      PyErr_SetString (PyExc_TypeError,
                       "callback parameter completion is not callable");
      goto out;
    }
    /* Increment refcount since pointer may be saved by libnbd. */
    Py_INCREF (py_completion_fn);
    completion_user_data->fn = py_completion_fn;
  }
  else
    completion.callback = NULL; /* we're not going to call it */

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_aio_opt_starttls (h, completion);
  Py_END_ALLOW_THREADS;
  completion_user_data = NULL;
  if (ret == -1) {
    raise_exception ();
    goto out;
  }
  py_ret = Py_None;
  Py_INCREF (py_ret);

 out:
  free_user_data (completion_user_data);
  return py_ret;
}

PyObject *
nbd_internal_py_aio_opt_extended_headers (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int ret;
  PyObject *py_ret = NULL;
  struct user_data *completion_user_data = NULL;
  PyObject *py_completion_fn;
  nbd_completion_callback completion = { .callback = completion_wrapper,
                                         .free = free_user_data };

  if (!PyArg_ParseTuple (args, "OO:nbd_aio_opt_extended_headers", &py_h,
                         &py_completion_fn))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;
  completion.user_data = completion_user_data = alloc_user_data ();
  if (completion_user_data == NULL) goto out;
  if (py_completion_fn != Py_None) {
    if (!PyCallable_Check (py_completion_fn)) {
      PyErr_SetString (PyExc_TypeError,
                       "callback parameter completion is not callable");
      goto out;
    }
    /* Increment refcount since pointer may be saved by libnbd. */
    Py_INCREF (py_completion_fn);
    completion_user_data->fn = py_completion_fn;
  }
  else
    completion.callback = NULL; /* we're not going to call it */

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_aio_opt_extended_headers (h, completion);
  Py_END_ALLOW_THREADS;
  completion_user_data = NULL;
  if (ret == -1) {
    raise_exception ();
    goto out;
  }
  py_ret = Py_None;
  Py_INCREF (py_ret);

 out:
  free_user_data (completion_user_data);
  return py_ret;
}

PyObject *
nbd_internal_py_aio_opt_structured_reply (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int ret;
  PyObject *py_ret = NULL;
  struct user_data *completion_user_data = NULL;
  PyObject *py_completion_fn;
  nbd_completion_callback completion = { .callback = completion_wrapper,
                                         .free = free_user_data };

  if (!PyArg_ParseTuple (args, "OO:nbd_aio_opt_structured_reply", &py_h,
                         &py_completion_fn))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;
  completion.user_data = completion_user_data = alloc_user_data ();
  if (completion_user_data == NULL) goto out;
  if (py_completion_fn != Py_None) {
    if (!PyCallable_Check (py_completion_fn)) {
      PyErr_SetString (PyExc_TypeError,
                       "callback parameter completion is not callable");
      goto out;
    }
    /* Increment refcount since pointer may be saved by libnbd. */
    Py_INCREF (py_completion_fn);
    completion_user_data->fn = py_completion_fn;
  }
  else
    completion.callback = NULL; /* we're not going to call it */

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_aio_opt_structured_reply (h, completion);
  Py_END_ALLOW_THREADS;
  completion_user_data = NULL;
  if (ret == -1) {
    raise_exception ();
    goto out;
  }
  py_ret = Py_None;
  Py_INCREF (py_ret);

 out:
  free_user_data (completion_user_data);
  return py_ret;
}

PyObject *
nbd_internal_py_aio_opt_list (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int ret;
  PyObject *py_ret = NULL;
  struct user_data *list_user_data = NULL;
  PyObject *py_list_fn;
  nbd_list_callback list = { .callback = list_wrapper,
                             .free = free_user_data };
  struct user_data *completion_user_data = NULL;
  PyObject *py_completion_fn;
  nbd_completion_callback completion = { .callback = completion_wrapper,
                                         .free = free_user_data };

  if (!PyArg_ParseTuple (args, "OOO:nbd_aio_opt_list", &py_h, &py_list_fn,
                         &py_completion_fn))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;
  completion.user_data = completion_user_data = alloc_user_data ();
  if (completion_user_data == NULL) goto out;
  if (py_completion_fn != Py_None) {
    if (!PyCallable_Check (py_completion_fn)) {
      PyErr_SetString (PyExc_TypeError,
                       "callback parameter completion is not callable");
      goto out;
    }
    /* Increment refcount since pointer may be saved by libnbd. */
    Py_INCREF (py_completion_fn);
    completion_user_data->fn = py_completion_fn;
  }
  else
    completion.callback = NULL; /* we're not going to call it */
  list.user_data = list_user_data = alloc_user_data ();
  if (list_user_data == NULL) goto out;
  if (!PyCallable_Check (py_list_fn)) {
    PyErr_SetString (PyExc_TypeError,
                     "callback parameter list is not callable");
    goto out;
  }
  /* Increment refcount since pointer may be saved by libnbd. */
  Py_INCREF (py_list_fn);
  list_user_data->fn = py_list_fn;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_aio_opt_list (h, list, completion);
  Py_END_ALLOW_THREADS;
  list_user_data = NULL;
  completion_user_data = NULL;
  if (ret == -1) {
    raise_exception ();
    goto out;
  }
  py_ret = Py_None;
  Py_INCREF (py_ret);

 out:
  free_user_data (list_user_data);
  free_user_data (completion_user_data);
  return py_ret;
}

PyObject *
nbd_internal_py_aio_opt_info (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int ret;
  PyObject *py_ret = NULL;
  struct user_data *completion_user_data = NULL;
  PyObject *py_completion_fn;
  nbd_completion_callback completion = { .callback = completion_wrapper,
                                         .free = free_user_data };

  if (!PyArg_ParseTuple (args, "OO:nbd_aio_opt_info", &py_h,
                         &py_completion_fn))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;
  completion.user_data = completion_user_data = alloc_user_data ();
  if (completion_user_data == NULL) goto out;
  if (py_completion_fn != Py_None) {
    if (!PyCallable_Check (py_completion_fn)) {
      PyErr_SetString (PyExc_TypeError,
                       "callback parameter completion is not callable");
      goto out;
    }
    /* Increment refcount since pointer may be saved by libnbd. */
    Py_INCREF (py_completion_fn);
    completion_user_data->fn = py_completion_fn;
  }
  else
    completion.callback = NULL; /* we're not going to call it */

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_aio_opt_info (h, completion);
  Py_END_ALLOW_THREADS;
  completion_user_data = NULL;
  if (ret == -1) {
    raise_exception ();
    goto out;
  }
  py_ret = Py_None;
  Py_INCREF (py_ret);

 out:
  free_user_data (completion_user_data);
  return py_ret;
}

PyObject *
nbd_internal_py_aio_opt_list_meta_context (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int ret;
  PyObject *py_ret = NULL;
  struct user_data *context_user_data = NULL;
  PyObject *py_context_fn;
  nbd_context_callback context = { .callback = context_wrapper,
                                   .free = free_user_data };
  struct user_data *completion_user_data = NULL;
  PyObject *py_completion_fn;
  nbd_completion_callback completion = { .callback = completion_wrapper,
                                         .free = free_user_data };

  if (!PyArg_ParseTuple (args, "OOO:nbd_aio_opt_list_meta_context", &py_h,
                         &py_context_fn, &py_completion_fn))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;
  completion.user_data = completion_user_data = alloc_user_data ();
  if (completion_user_data == NULL) goto out;
  if (py_completion_fn != Py_None) {
    if (!PyCallable_Check (py_completion_fn)) {
      PyErr_SetString (PyExc_TypeError,
                       "callback parameter completion is not callable");
      goto out;
    }
    /* Increment refcount since pointer may be saved by libnbd. */
    Py_INCREF (py_completion_fn);
    completion_user_data->fn = py_completion_fn;
  }
  else
    completion.callback = NULL; /* we're not going to call it */
  context.user_data = context_user_data = alloc_user_data ();
  if (context_user_data == NULL) goto out;
  if (!PyCallable_Check (py_context_fn)) {
    PyErr_SetString (PyExc_TypeError,
                     "callback parameter context is not callable");
    goto out;
  }
  /* Increment refcount since pointer may be saved by libnbd. */
  Py_INCREF (py_context_fn);
  context_user_data->fn = py_context_fn;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_aio_opt_list_meta_context (h, context, completion);
  Py_END_ALLOW_THREADS;
  context_user_data = NULL;
  completion_user_data = NULL;
  if (ret == -1) {
    raise_exception ();
    goto out;
  }
  py_ret = PyLong_FromLong (ret);

 out:
  free_user_data (context_user_data);
  free_user_data (completion_user_data);
  return py_ret;
}

PyObject *
nbd_internal_py_aio_opt_list_meta_context_queries (PyObject *self,
                                                   PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int ret;
  PyObject *py_ret = NULL;
  PyObject *py_queries;
  char **queries = NULL;
  struct user_data *context_user_data = NULL;
  PyObject *py_context_fn;
  nbd_context_callback context = { .callback = context_wrapper,
                                   .free = free_user_data };
  struct user_data *completion_user_data = NULL;
  PyObject *py_completion_fn;
  nbd_completion_callback completion = { .callback = completion_wrapper,
                                         .free = free_user_data };

  if (!PyArg_ParseTuple (args, "OOOO:nbd_aio_opt_list_meta_context_queries",
                         &py_h, &py_queries, &py_context_fn,
                         &py_completion_fn))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;
  completion.user_data = completion_user_data = alloc_user_data ();
  if (completion_user_data == NULL) goto out;
  if (py_completion_fn != Py_None) {
    if (!PyCallable_Check (py_completion_fn)) {
      PyErr_SetString (PyExc_TypeError,
                       "callback parameter completion is not callable");
      goto out;
    }
    /* Increment refcount since pointer may be saved by libnbd. */
    Py_INCREF (py_completion_fn);
    completion_user_data->fn = py_completion_fn;
  }
  else
    completion.callback = NULL; /* we're not going to call it */
  queries = nbd_internal_py_get_string_list (py_queries);
  if (!queries) goto out;
  context.user_data = context_user_data = alloc_user_data ();
  if (context_user_data == NULL) goto out;
  if (!PyCallable_Check (py_context_fn)) {
    PyErr_SetString (PyExc_TypeError,
                     "callback parameter context is not callable");
    goto out;
  }
  /* Increment refcount since pointer may be saved by libnbd. */
  Py_INCREF (py_context_fn);
  context_user_data->fn = py_context_fn;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_aio_opt_list_meta_context_queries (h, queries, context,
                                               completion);
  Py_END_ALLOW_THREADS;
  context_user_data = NULL;
  completion_user_data = NULL;
  if (ret == -1) {
    raise_exception ();
    goto out;
  }
  py_ret = PyLong_FromLong (ret);

 out:
  nbd_internal_py_free_string_list (queries);
  free_user_data (context_user_data);
  free_user_data (completion_user_data);
  return py_ret;
}

PyObject *
nbd_internal_py_aio_opt_set_meta_context (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int ret;
  PyObject *py_ret = NULL;
  struct user_data *context_user_data = NULL;
  PyObject *py_context_fn;
  nbd_context_callback context = { .callback = context_wrapper,
                                   .free = free_user_data };
  struct user_data *completion_user_data = NULL;
  PyObject *py_completion_fn;
  nbd_completion_callback completion = { .callback = completion_wrapper,
                                         .free = free_user_data };

  if (!PyArg_ParseTuple (args, "OOO:nbd_aio_opt_set_meta_context", &py_h,
                         &py_context_fn, &py_completion_fn))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;
  completion.user_data = completion_user_data = alloc_user_data ();
  if (completion_user_data == NULL) goto out;
  if (py_completion_fn != Py_None) {
    if (!PyCallable_Check (py_completion_fn)) {
      PyErr_SetString (PyExc_TypeError,
                       "callback parameter completion is not callable");
      goto out;
    }
    /* Increment refcount since pointer may be saved by libnbd. */
    Py_INCREF (py_completion_fn);
    completion_user_data->fn = py_completion_fn;
  }
  else
    completion.callback = NULL; /* we're not going to call it */
  context.user_data = context_user_data = alloc_user_data ();
  if (context_user_data == NULL) goto out;
  if (!PyCallable_Check (py_context_fn)) {
    PyErr_SetString (PyExc_TypeError,
                     "callback parameter context is not callable");
    goto out;
  }
  /* Increment refcount since pointer may be saved by libnbd. */
  Py_INCREF (py_context_fn);
  context_user_data->fn = py_context_fn;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_aio_opt_set_meta_context (h, context, completion);
  Py_END_ALLOW_THREADS;
  context_user_data = NULL;
  completion_user_data = NULL;
  if (ret == -1) {
    raise_exception ();
    goto out;
  }
  py_ret = PyLong_FromLong (ret);

 out:
  free_user_data (context_user_data);
  free_user_data (completion_user_data);
  return py_ret;
}

PyObject *
nbd_internal_py_aio_opt_set_meta_context_queries (PyObject *self,
                                                  PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int ret;
  PyObject *py_ret = NULL;
  PyObject *py_queries;
  char **queries = NULL;
  struct user_data *context_user_data = NULL;
  PyObject *py_context_fn;
  nbd_context_callback context = { .callback = context_wrapper,
                                   .free = free_user_data };
  struct user_data *completion_user_data = NULL;
  PyObject *py_completion_fn;
  nbd_completion_callback completion = { .callback = completion_wrapper,
                                         .free = free_user_data };

  if (!PyArg_ParseTuple (args, "OOOO:nbd_aio_opt_set_meta_context_queries",
                         &py_h, &py_queries, &py_context_fn,
                         &py_completion_fn))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;
  completion.user_data = completion_user_data = alloc_user_data ();
  if (completion_user_data == NULL) goto out;
  if (py_completion_fn != Py_None) {
    if (!PyCallable_Check (py_completion_fn)) {
      PyErr_SetString (PyExc_TypeError,
                       "callback parameter completion is not callable");
      goto out;
    }
    /* Increment refcount since pointer may be saved by libnbd. */
    Py_INCREF (py_completion_fn);
    completion_user_data->fn = py_completion_fn;
  }
  else
    completion.callback = NULL; /* we're not going to call it */
  queries = nbd_internal_py_get_string_list (py_queries);
  if (!queries) goto out;
  context.user_data = context_user_data = alloc_user_data ();
  if (context_user_data == NULL) goto out;
  if (!PyCallable_Check (py_context_fn)) {
    PyErr_SetString (PyExc_TypeError,
                     "callback parameter context is not callable");
    goto out;
  }
  /* Increment refcount since pointer may be saved by libnbd. */
  Py_INCREF (py_context_fn);
  context_user_data->fn = py_context_fn;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_aio_opt_set_meta_context_queries (h, queries, context,
                                              completion);
  Py_END_ALLOW_THREADS;
  context_user_data = NULL;
  completion_user_data = NULL;
  if (ret == -1) {
    raise_exception ();
    goto out;
  }
  py_ret = PyLong_FromLong (ret);

 out:
  nbd_internal_py_free_string_list (queries);
  free_user_data (context_user_data);
  free_user_data (completion_user_data);
  return py_ret;
}

PyObject *
nbd_internal_py_aio_pread (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int64_t ret;
  PyObject *py_ret = NULL;
  PyObject *buf; /* Buffer-like object or nbd.Buffer */
  PyObject *buf_view = NULL; /* PyMemoryView of buf */
  Py_buffer *py_buf; /* buffer of buf_view */
  uint64_t offset_u64;
  unsigned long long offset; /* really uint64_t */
  struct user_data *completion_user_data = NULL;
  PyObject *py_completion_fn;
  nbd_completion_callback completion = { .callback = completion_wrapper,
                                         .free = free_user_data };
  uint32_t flags_u32;
  unsigned int flags; /* really uint32_t */

  if (!PyArg_ParseTuple (args, "OOKOI:nbd_aio_pread", &py_h, &buf, &offset,
                         &py_completion_fn, &flags))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;
  completion.user_data = completion_user_data = alloc_user_data ();
  if (completion_user_data == NULL) goto out;
  if (py_completion_fn != Py_None) {
    if (!PyCallable_Check (py_completion_fn)) {
      PyErr_SetString (PyExc_TypeError,
                       "callback parameter completion is not callable");
      goto out;
    }
    /* Increment refcount since pointer may be saved by libnbd. */
    Py_INCREF (py_completion_fn);
    completion_user_data->fn = py_completion_fn;
  }
  else
    completion.callback = NULL; /* we're not going to call it */
  flags_u32 = flags;
  buf_view = nbd_internal_py_get_aio_view (buf, PyBUF_WRITE);
  if (!buf_view) goto out;
  py_buf = PyMemoryView_GET_BUFFER (buf_view);
  completion_user_data->view = buf_view;
  offset_u64 = offset;

  if (nbd_internal_py_init_aio_buffer (buf) < 0) goto out;
  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_aio_pread (h, py_buf->buf, py_buf->len, offset_u64, completion,
                       flags_u32);
  Py_END_ALLOW_THREADS;
  completion_user_data = NULL;
  if (ret == -1) {
    raise_exception ();
    goto out;
  }
  py_ret = PyLong_FromLongLong (ret);

 out:
  free_user_data (completion_user_data);
  return py_ret;
}

PyObject *
nbd_internal_py_aio_pread_structured (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int64_t ret;
  PyObject *py_ret = NULL;
  PyObject *buf; /* Buffer-like object or nbd.Buffer */
  PyObject *buf_view = NULL; /* PyMemoryView of buf */
  Py_buffer *py_buf; /* buffer of buf_view */
  uint64_t offset_u64;
  unsigned long long offset; /* really uint64_t */
  struct user_data *chunk_user_data = NULL;
  PyObject *py_chunk_fn;
  nbd_chunk_callback chunk = { .callback = chunk_wrapper,
                               .free = free_user_data };
  struct user_data *completion_user_data = NULL;
  PyObject *py_completion_fn;
  nbd_completion_callback completion = { .callback = completion_wrapper,
                                         .free = free_user_data };
  uint32_t flags_u32;
  unsigned int flags; /* really uint32_t */

  if (!PyArg_ParseTuple (args, "OOKOOI:nbd_aio_pread_structured", &py_h,
                         &buf, &offset, &py_chunk_fn, &py_completion_fn,
                         &flags))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;
  completion.user_data = completion_user_data = alloc_user_data ();
  if (completion_user_data == NULL) goto out;
  if (py_completion_fn != Py_None) {
    if (!PyCallable_Check (py_completion_fn)) {
      PyErr_SetString (PyExc_TypeError,
                       "callback parameter completion is not callable");
      goto out;
    }
    /* Increment refcount since pointer may be saved by libnbd. */
    Py_INCREF (py_completion_fn);
    completion_user_data->fn = py_completion_fn;
  }
  else
    completion.callback = NULL; /* we're not going to call it */
  flags_u32 = flags;
  buf_view = nbd_internal_py_get_aio_view (buf, PyBUF_WRITE);
  if (!buf_view) goto out;
  py_buf = PyMemoryView_GET_BUFFER (buf_view);
  completion_user_data->view = buf_view;
  offset_u64 = offset;
  chunk.user_data = chunk_user_data = alloc_user_data ();
  if (chunk_user_data == NULL) goto out;
  if (!PyCallable_Check (py_chunk_fn)) {
    PyErr_SetString (PyExc_TypeError,
                     "callback parameter chunk is not callable");
    goto out;
  }
  /* Increment refcount since pointer may be saved by libnbd. */
  Py_INCREF (py_chunk_fn);
  chunk_user_data->fn = py_chunk_fn;
  chunk_user_data->view = nbd_internal_py_get_aio_view (buf, PyBUF_WRITE);
  if (!chunk_user_data->view) goto out;

  if (nbd_internal_py_init_aio_buffer (buf) < 0) goto out;
  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_aio_pread_structured (h, py_buf->buf, py_buf->len, offset_u64,
                                  chunk, completion, flags_u32);
  Py_END_ALLOW_THREADS;
  chunk_user_data = NULL;
  completion_user_data = NULL;
  if (ret == -1) {
    raise_exception ();
    goto out;
  }
  py_ret = PyLong_FromLongLong (ret);

 out:
  free_user_data (chunk_user_data);
  free_user_data (completion_user_data);
  return py_ret;
}

PyObject *
nbd_internal_py_aio_pwrite (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int64_t ret;
  PyObject *py_ret = NULL;
  PyObject *buf; /* Buffer-like object or nbd.Buffer */
  PyObject *buf_view = NULL; /* PyMemoryView of buf */
  Py_buffer *py_buf; /* buffer of buf_view */
  uint64_t offset_u64;
  unsigned long long offset; /* really uint64_t */
  struct user_data *completion_user_data = NULL;
  PyObject *py_completion_fn;
  nbd_completion_callback completion = { .callback = completion_wrapper,
                                         .free = free_user_data };
  uint32_t flags_u32;
  unsigned int flags; /* really uint32_t */

  if (!PyArg_ParseTuple (args, "OOKOI:nbd_aio_pwrite", &py_h, &buf, &offset,
                         &py_completion_fn, &flags))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;
  completion.user_data = completion_user_data = alloc_user_data ();
  if (completion_user_data == NULL) goto out;
  if (py_completion_fn != Py_None) {
    if (!PyCallable_Check (py_completion_fn)) {
      PyErr_SetString (PyExc_TypeError,
                       "callback parameter completion is not callable");
      goto out;
    }
    /* Increment refcount since pointer may be saved by libnbd. */
    Py_INCREF (py_completion_fn);
    completion_user_data->fn = py_completion_fn;
  }
  else
    completion.callback = NULL; /* we're not going to call it */
  flags_u32 = flags;
  buf_view = nbd_internal_py_get_aio_view (buf, PyBUF_READ);
  if (!buf_view) goto out;
  py_buf = PyMemoryView_GET_BUFFER (buf_view);
  completion_user_data->view = buf_view;
  offset_u64 = offset;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_aio_pwrite (h, py_buf->buf, py_buf->len, offset_u64, completion,
                        flags_u32);
  Py_END_ALLOW_THREADS;
  completion_user_data = NULL;
  if (ret == -1) {
    raise_exception ();
    goto out;
  }
  py_ret = PyLong_FromLongLong (ret);

 out:
  free_user_data (completion_user_data);
  return py_ret;
}

PyObject *
nbd_internal_py_aio_disconnect (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int ret;
  PyObject *py_ret = NULL;
  uint32_t flags_u32;
  unsigned int flags; /* really uint32_t */

  if (!PyArg_ParseTuple (args, "OI:nbd_aio_disconnect", &py_h, &flags))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;
  flags_u32 = flags;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_aio_disconnect (h, flags_u32);
  Py_END_ALLOW_THREADS;
  if (ret == -1) {
    raise_exception ();
    goto out;
  }
  py_ret = Py_None;
  Py_INCREF (py_ret);

 out:
  return py_ret;
}

PyObject *
nbd_internal_py_aio_flush (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int64_t ret;
  PyObject *py_ret = NULL;
  struct user_data *completion_user_data = NULL;
  PyObject *py_completion_fn;
  nbd_completion_callback completion = { .callback = completion_wrapper,
                                         .free = free_user_data };
  uint32_t flags_u32;
  unsigned int flags; /* really uint32_t */

  if (!PyArg_ParseTuple (args, "OOI:nbd_aio_flush", &py_h,
                         &py_completion_fn, &flags))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;
  completion.user_data = completion_user_data = alloc_user_data ();
  if (completion_user_data == NULL) goto out;
  if (py_completion_fn != Py_None) {
    if (!PyCallable_Check (py_completion_fn)) {
      PyErr_SetString (PyExc_TypeError,
                       "callback parameter completion is not callable");
      goto out;
    }
    /* Increment refcount since pointer may be saved by libnbd. */
    Py_INCREF (py_completion_fn);
    completion_user_data->fn = py_completion_fn;
  }
  else
    completion.callback = NULL; /* we're not going to call it */
  flags_u32 = flags;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_aio_flush (h, completion, flags_u32);
  Py_END_ALLOW_THREADS;
  completion_user_data = NULL;
  if (ret == -1) {
    raise_exception ();
    goto out;
  }
  py_ret = PyLong_FromLongLong (ret);

 out:
  free_user_data (completion_user_data);
  return py_ret;
}

PyObject *
nbd_internal_py_aio_trim (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int64_t ret;
  PyObject *py_ret = NULL;
  uint64_t count_u64;
  unsigned long long count; /* really uint64_t */
  uint64_t offset_u64;
  unsigned long long offset; /* really uint64_t */
  struct user_data *completion_user_data = NULL;
  PyObject *py_completion_fn;
  nbd_completion_callback completion = { .callback = completion_wrapper,
                                         .free = free_user_data };
  uint32_t flags_u32;
  unsigned int flags; /* really uint32_t */

  if (!PyArg_ParseTuple (args, "OKKOI:nbd_aio_trim", &py_h, &count, &offset,
                         &py_completion_fn, &flags))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;
  completion.user_data = completion_user_data = alloc_user_data ();
  if (completion_user_data == NULL) goto out;
  if (py_completion_fn != Py_None) {
    if (!PyCallable_Check (py_completion_fn)) {
      PyErr_SetString (PyExc_TypeError,
                       "callback parameter completion is not callable");
      goto out;
    }
    /* Increment refcount since pointer may be saved by libnbd. */
    Py_INCREF (py_completion_fn);
    completion_user_data->fn = py_completion_fn;
  }
  else
    completion.callback = NULL; /* we're not going to call it */
  flags_u32 = flags;
  count_u64 = count;
  offset_u64 = offset;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_aio_trim (h, count_u64, offset_u64, completion, flags_u32);
  Py_END_ALLOW_THREADS;
  completion_user_data = NULL;
  if (ret == -1) {
    raise_exception ();
    goto out;
  }
  py_ret = PyLong_FromLongLong (ret);

 out:
  free_user_data (completion_user_data);
  return py_ret;
}

PyObject *
nbd_internal_py_aio_cache (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int64_t ret;
  PyObject *py_ret = NULL;
  uint64_t count_u64;
  unsigned long long count; /* really uint64_t */
  uint64_t offset_u64;
  unsigned long long offset; /* really uint64_t */
  struct user_data *completion_user_data = NULL;
  PyObject *py_completion_fn;
  nbd_completion_callback completion = { .callback = completion_wrapper,
                                         .free = free_user_data };
  uint32_t flags_u32;
  unsigned int flags; /* really uint32_t */

  if (!PyArg_ParseTuple (args, "OKKOI:nbd_aio_cache", &py_h, &count,
                         &offset, &py_completion_fn, &flags))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;
  completion.user_data = completion_user_data = alloc_user_data ();
  if (completion_user_data == NULL) goto out;
  if (py_completion_fn != Py_None) {
    if (!PyCallable_Check (py_completion_fn)) {
      PyErr_SetString (PyExc_TypeError,
                       "callback parameter completion is not callable");
      goto out;
    }
    /* Increment refcount since pointer may be saved by libnbd. */
    Py_INCREF (py_completion_fn);
    completion_user_data->fn = py_completion_fn;
  }
  else
    completion.callback = NULL; /* we're not going to call it */
  flags_u32 = flags;
  count_u64 = count;
  offset_u64 = offset;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_aio_cache (h, count_u64, offset_u64, completion, flags_u32);
  Py_END_ALLOW_THREADS;
  completion_user_data = NULL;
  if (ret == -1) {
    raise_exception ();
    goto out;
  }
  py_ret = PyLong_FromLongLong (ret);

 out:
  free_user_data (completion_user_data);
  return py_ret;
}

PyObject *
nbd_internal_py_aio_zero (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int64_t ret;
  PyObject *py_ret = NULL;
  uint64_t count_u64;
  unsigned long long count; /* really uint64_t */
  uint64_t offset_u64;
  unsigned long long offset; /* really uint64_t */
  struct user_data *completion_user_data = NULL;
  PyObject *py_completion_fn;
  nbd_completion_callback completion = { .callback = completion_wrapper,
                                         .free = free_user_data };
  uint32_t flags_u32;
  unsigned int flags; /* really uint32_t */

  if (!PyArg_ParseTuple (args, "OKKOI:nbd_aio_zero", &py_h, &count, &offset,
                         &py_completion_fn, &flags))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;
  completion.user_data = completion_user_data = alloc_user_data ();
  if (completion_user_data == NULL) goto out;
  if (py_completion_fn != Py_None) {
    if (!PyCallable_Check (py_completion_fn)) {
      PyErr_SetString (PyExc_TypeError,
                       "callback parameter completion is not callable");
      goto out;
    }
    /* Increment refcount since pointer may be saved by libnbd. */
    Py_INCREF (py_completion_fn);
    completion_user_data->fn = py_completion_fn;
  }
  else
    completion.callback = NULL; /* we're not going to call it */
  flags_u32 = flags;
  count_u64 = count;
  offset_u64 = offset;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_aio_zero (h, count_u64, offset_u64, completion, flags_u32);
  Py_END_ALLOW_THREADS;
  completion_user_data = NULL;
  if (ret == -1) {
    raise_exception ();
    goto out;
  }
  py_ret = PyLong_FromLongLong (ret);

 out:
  free_user_data (completion_user_data);
  return py_ret;
}

PyObject *
nbd_internal_py_aio_block_status (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int64_t ret;
  PyObject *py_ret = NULL;
  uint64_t count_u64;
  unsigned long long count; /* really uint64_t */
  uint64_t offset_u64;
  unsigned long long offset; /* really uint64_t */
  struct user_data *extent_user_data = NULL;
  PyObject *py_extent_fn;
  nbd_extent_callback extent = { .callback = extent_wrapper,
                                 .free = free_user_data };
  struct user_data *completion_user_data = NULL;
  PyObject *py_completion_fn;
  nbd_completion_callback completion = { .callback = completion_wrapper,
                                         .free = free_user_data };
  uint32_t flags_u32;
  unsigned int flags; /* really uint32_t */

  if (!PyArg_ParseTuple (args, "OKKOOI:nbd_aio_block_status", &py_h, &count,
                         &offset, &py_extent_fn, &py_completion_fn, &flags))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;
  completion.user_data = completion_user_data = alloc_user_data ();
  if (completion_user_data == NULL) goto out;
  if (py_completion_fn != Py_None) {
    if (!PyCallable_Check (py_completion_fn)) {
      PyErr_SetString (PyExc_TypeError,
                       "callback parameter completion is not callable");
      goto out;
    }
    /* Increment refcount since pointer may be saved by libnbd. */
    Py_INCREF (py_completion_fn);
    completion_user_data->fn = py_completion_fn;
  }
  else
    completion.callback = NULL; /* we're not going to call it */
  flags_u32 = flags;
  count_u64 = count;
  offset_u64 = offset;
  extent.user_data = extent_user_data = alloc_user_data ();
  if (extent_user_data == NULL) goto out;
  if (!PyCallable_Check (py_extent_fn)) {
    PyErr_SetString (PyExc_TypeError,
                     "callback parameter extent is not callable");
    goto out;
  }
  /* Increment refcount since pointer may be saved by libnbd. */
  Py_INCREF (py_extent_fn);
  extent_user_data->fn = py_extent_fn;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_aio_block_status (h, count_u64, offset_u64, extent, completion,
                              flags_u32);
  Py_END_ALLOW_THREADS;
  extent_user_data = NULL;
  completion_user_data = NULL;
  if (ret == -1) {
    raise_exception ();
    goto out;
  }
  py_ret = PyLong_FromLongLong (ret);

 out:
  free_user_data (extent_user_data);
  free_user_data (completion_user_data);
  return py_ret;
}

PyObject *
nbd_internal_py_aio_block_status_64 (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int64_t ret;
  PyObject *py_ret = NULL;
  uint64_t count_u64;
  unsigned long long count; /* really uint64_t */
  uint64_t offset_u64;
  unsigned long long offset; /* really uint64_t */
  struct user_data *extent64_user_data = NULL;
  PyObject *py_extent64_fn;
  nbd_extent64_callback extent64 = { .callback = extent64_wrapper,
                                     .free = free_user_data };
  struct user_data *completion_user_data = NULL;
  PyObject *py_completion_fn;
  nbd_completion_callback completion = { .callback = completion_wrapper,
                                         .free = free_user_data };
  uint32_t flags_u32;
  unsigned int flags; /* really uint32_t */

  if (!PyArg_ParseTuple (args, "OKKOOI:nbd_aio_block_status_64", &py_h,
                         &count, &offset, &py_extent64_fn,
                         &py_completion_fn, &flags))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;
  completion.user_data = completion_user_data = alloc_user_data ();
  if (completion_user_data == NULL) goto out;
  if (py_completion_fn != Py_None) {
    if (!PyCallable_Check (py_completion_fn)) {
      PyErr_SetString (PyExc_TypeError,
                       "callback parameter completion is not callable");
      goto out;
    }
    /* Increment refcount since pointer may be saved by libnbd. */
    Py_INCREF (py_completion_fn);
    completion_user_data->fn = py_completion_fn;
  }
  else
    completion.callback = NULL; /* we're not going to call it */
  flags_u32 = flags;
  count_u64 = count;
  offset_u64 = offset;
  extent64.user_data = extent64_user_data = alloc_user_data ();
  if (extent64_user_data == NULL) goto out;
  if (!PyCallable_Check (py_extent64_fn)) {
    PyErr_SetString (PyExc_TypeError,
                     "callback parameter extent64 is not callable");
    goto out;
  }
  /* Increment refcount since pointer may be saved by libnbd. */
  Py_INCREF (py_extent64_fn);
  extent64_user_data->fn = py_extent64_fn;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_aio_block_status_64 (h, count_u64, offset_u64, extent64,
                                 completion, flags_u32);
  Py_END_ALLOW_THREADS;
  extent64_user_data = NULL;
  completion_user_data = NULL;
  if (ret == -1) {
    raise_exception ();
    goto out;
  }
  py_ret = PyLong_FromLongLong (ret);

 out:
  free_user_data (extent64_user_data);
  free_user_data (completion_user_data);
  return py_ret;
}

PyObject *
nbd_internal_py_aio_block_status_filter (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int64_t ret;
  PyObject *py_ret = NULL;
  uint64_t count_u64;
  unsigned long long count; /* really uint64_t */
  uint64_t offset_u64;
  unsigned long long offset; /* really uint64_t */
  PyObject *py_contexts;
  char **contexts = NULL;
  struct user_data *extent64_user_data = NULL;
  PyObject *py_extent64_fn;
  nbd_extent64_callback extent64 = { .callback = extent64_wrapper,
                                     .free = free_user_data };
  struct user_data *completion_user_data = NULL;
  PyObject *py_completion_fn;
  nbd_completion_callback completion = { .callback = completion_wrapper,
                                         .free = free_user_data };
  uint32_t flags_u32;
  unsigned int flags; /* really uint32_t */

  if (!PyArg_ParseTuple (args, "OKKOOOI:nbd_aio_block_status_filter", &py_h,
                         &count, &offset, &py_contexts, &py_extent64_fn,
                         &py_completion_fn, &flags))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;
  completion.user_data = completion_user_data = alloc_user_data ();
  if (completion_user_data == NULL) goto out;
  if (py_completion_fn != Py_None) {
    if (!PyCallable_Check (py_completion_fn)) {
      PyErr_SetString (PyExc_TypeError,
                       "callback parameter completion is not callable");
      goto out;
    }
    /* Increment refcount since pointer may be saved by libnbd. */
    Py_INCREF (py_completion_fn);
    completion_user_data->fn = py_completion_fn;
  }
  else
    completion.callback = NULL; /* we're not going to call it */
  flags_u32 = flags;
  count_u64 = count;
  offset_u64 = offset;
  contexts = nbd_internal_py_get_string_list (py_contexts);
  if (!contexts) goto out;
  extent64.user_data = extent64_user_data = alloc_user_data ();
  if (extent64_user_data == NULL) goto out;
  if (!PyCallable_Check (py_extent64_fn)) {
    PyErr_SetString (PyExc_TypeError,
                     "callback parameter extent64 is not callable");
    goto out;
  }
  /* Increment refcount since pointer may be saved by libnbd. */
  Py_INCREF (py_extent64_fn);
  extent64_user_data->fn = py_extent64_fn;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_aio_block_status_filter (h, count_u64, offset_u64, contexts,
                                     extent64, completion, flags_u32);
  Py_END_ALLOW_THREADS;
  extent64_user_data = NULL;
  completion_user_data = NULL;
  if (ret == -1) {
    raise_exception ();
    goto out;
  }
  py_ret = PyLong_FromLongLong (ret);

 out:
  nbd_internal_py_free_string_list (contexts);
  free_user_data (extent64_user_data);
  free_user_data (completion_user_data);
  return py_ret;
}

PyObject *
nbd_internal_py_aio_get_fd (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int ret;
  PyObject *py_ret = NULL;

  if (!PyArg_ParseTuple (args, "O:nbd_aio_get_fd", &py_h))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_aio_get_fd (h);
  Py_END_ALLOW_THREADS;
  if (ret == -1) {
    raise_exception ();
    goto out;
  }
  py_ret = PyLong_FromLong (ret);

 out:
  return py_ret;
}

PyObject *
nbd_internal_py_aio_get_direction (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  unsigned ret;
  PyObject *py_ret = NULL;

  if (!PyArg_ParseTuple (args, "O:nbd_aio_get_direction", &py_h))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_aio_get_direction (h);
  Py_END_ALLOW_THREADS;
  py_ret = PyLong_FromLong (ret);

 out:
  return py_ret;
}

PyObject *
nbd_internal_py_aio_notify_read (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int ret;
  PyObject *py_ret = NULL;

  if (!PyArg_ParseTuple (args, "O:nbd_aio_notify_read", &py_h))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_aio_notify_read (h);
  Py_END_ALLOW_THREADS;
  if (ret == -1) {
    raise_exception ();
    goto out;
  }
  py_ret = Py_None;
  Py_INCREF (py_ret);

 out:
  return py_ret;
}

PyObject *
nbd_internal_py_aio_notify_write (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int ret;
  PyObject *py_ret = NULL;

  if (!PyArg_ParseTuple (args, "O:nbd_aio_notify_write", &py_h))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_aio_notify_write (h);
  Py_END_ALLOW_THREADS;
  if (ret == -1) {
    raise_exception ();
    goto out;
  }
  py_ret = Py_None;
  Py_INCREF (py_ret);

 out:
  return py_ret;
}

PyObject *
nbd_internal_py_aio_is_created (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int ret;
  PyObject *py_ret = NULL;

  if (!PyArg_ParseTuple (args, "O:nbd_aio_is_created", &py_h))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_aio_is_created (h);
  Py_END_ALLOW_THREADS;
  py_ret = ret ? Py_True : Py_False;
  Py_INCREF (py_ret);

 out:
  return py_ret;
}

PyObject *
nbd_internal_py_aio_is_connecting (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int ret;
  PyObject *py_ret = NULL;

  if (!PyArg_ParseTuple (args, "O:nbd_aio_is_connecting", &py_h))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_aio_is_connecting (h);
  Py_END_ALLOW_THREADS;
  py_ret = ret ? Py_True : Py_False;
  Py_INCREF (py_ret);

 out:
  return py_ret;
}

PyObject *
nbd_internal_py_aio_is_negotiating (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int ret;
  PyObject *py_ret = NULL;

  if (!PyArg_ParseTuple (args, "O:nbd_aio_is_negotiating", &py_h))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_aio_is_negotiating (h);
  Py_END_ALLOW_THREADS;
  py_ret = ret ? Py_True : Py_False;
  Py_INCREF (py_ret);

 out:
  return py_ret;
}

PyObject *
nbd_internal_py_aio_is_ready (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int ret;
  PyObject *py_ret = NULL;

  if (!PyArg_ParseTuple (args, "O:nbd_aio_is_ready", &py_h))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_aio_is_ready (h);
  Py_END_ALLOW_THREADS;
  py_ret = ret ? Py_True : Py_False;
  Py_INCREF (py_ret);

 out:
  return py_ret;
}

PyObject *
nbd_internal_py_aio_is_processing (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int ret;
  PyObject *py_ret = NULL;

  if (!PyArg_ParseTuple (args, "O:nbd_aio_is_processing", &py_h))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_aio_is_processing (h);
  Py_END_ALLOW_THREADS;
  py_ret = ret ? Py_True : Py_False;
  Py_INCREF (py_ret);

 out:
  return py_ret;
}

PyObject *
nbd_internal_py_aio_is_dead (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int ret;
  PyObject *py_ret = NULL;

  if (!PyArg_ParseTuple (args, "O:nbd_aio_is_dead", &py_h))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_aio_is_dead (h);
  Py_END_ALLOW_THREADS;
  py_ret = ret ? Py_True : Py_False;
  Py_INCREF (py_ret);

 out:
  return py_ret;
}

PyObject *
nbd_internal_py_aio_is_closed (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int ret;
  PyObject *py_ret = NULL;

  if (!PyArg_ParseTuple (args, "O:nbd_aio_is_closed", &py_h))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_aio_is_closed (h);
  Py_END_ALLOW_THREADS;
  py_ret = ret ? Py_True : Py_False;
  Py_INCREF (py_ret);

 out:
  return py_ret;
}

PyObject *
nbd_internal_py_aio_command_completed (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int ret;
  PyObject *py_ret = NULL;
  uint64_t cookie_u64;
  unsigned long long cookie; /* really uint64_t */

  if (!PyArg_ParseTuple (args, "OK:nbd_aio_command_completed", &py_h,
                         &cookie))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;
  cookie_u64 = cookie;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_aio_command_completed (h, cookie_u64);
  Py_END_ALLOW_THREADS;
  if (ret == -1) {
    raise_exception ();
    goto out;
  }
  py_ret = ret ? Py_True : Py_False;
  Py_INCREF (py_ret);

 out:
  return py_ret;
}

PyObject *
nbd_internal_py_aio_peek_command_completed (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int64_t ret;
  PyObject *py_ret = NULL;

  if (!PyArg_ParseTuple (args, "O:nbd_aio_peek_command_completed", &py_h))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_aio_peek_command_completed (h);
  Py_END_ALLOW_THREADS;
  if (ret == -1) {
    raise_exception ();
    goto out;
  }
  py_ret = PyLong_FromLongLong (ret);

 out:
  return py_ret;
}

PyObject *
nbd_internal_py_aio_in_flight (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int ret;
  PyObject *py_ret = NULL;

  if (!PyArg_ParseTuple (args, "O:nbd_aio_in_flight", &py_h))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_aio_in_flight (h);
  Py_END_ALLOW_THREADS;
  if (ret == -1) {
    raise_exception ();
    goto out;
  }
  py_ret = PyLong_FromLong (ret);

 out:
  return py_ret;
}

PyObject *
nbd_internal_py_connection_state (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  const char * ret;
  PyObject *py_ret = NULL;

  if (!PyArg_ParseTuple (args, "O:nbd_connection_state", &py_h))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_connection_state (h);
  Py_END_ALLOW_THREADS;
  if (ret == NULL) {
    raise_exception ();
    goto out;
  }
  py_ret = PyUnicode_FromString (ret);

 out:
  return py_ret;
}

PyObject *
nbd_internal_py_get_package_name (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  const char * ret;
  PyObject *py_ret = NULL;

  if (!PyArg_ParseTuple (args, "O:nbd_get_package_name", &py_h))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_get_package_name (h);
  Py_END_ALLOW_THREADS;
  py_ret = PyUnicode_FromString (ret);

 out:
  return py_ret;
}

PyObject *
nbd_internal_py_get_version (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  const char * ret;
  PyObject *py_ret = NULL;

  if (!PyArg_ParseTuple (args, "O:nbd_get_version", &py_h))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_get_version (h);
  Py_END_ALLOW_THREADS;
  py_ret = PyUnicode_FromString (ret);

 out:
  return py_ret;
}

PyObject *
nbd_internal_py_kill_subprocess (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int ret;
  PyObject *py_ret = NULL;
  int signum;

  if (!PyArg_ParseTuple (args, "Oi:nbd_kill_subprocess", &py_h, &signum))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_kill_subprocess (h, signum);
  Py_END_ALLOW_THREADS;
  if (ret == -1) {
    raise_exception ();
    goto out;
  }
  py_ret = Py_None;
  Py_INCREF (py_ret);

 out:
  return py_ret;
}

PyObject *
nbd_internal_py_get_subprocess_pid (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int64_t ret;
  PyObject *py_ret = NULL;

  if (!PyArg_ParseTuple (args, "O:nbd_get_subprocess_pid", &py_h))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_get_subprocess_pid (h);
  Py_END_ALLOW_THREADS;
  if (ret == -1) {
    raise_exception ();
    goto out;
  }
  py_ret = PyLong_FromLongLong (ret);

 out:
  return py_ret;
}

PyObject *
nbd_internal_py_supports_tls (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int ret;
  PyObject *py_ret = NULL;

  if (!PyArg_ParseTuple (args, "O:nbd_supports_tls", &py_h))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_supports_tls (h);
  Py_END_ALLOW_THREADS;
  py_ret = ret ? Py_True : Py_False;
  Py_INCREF (py_ret);

 out:
  return py_ret;
}

PyObject *
nbd_internal_py_supports_vsock (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int ret;
  PyObject *py_ret = NULL;

  if (!PyArg_ParseTuple (args, "O:nbd_supports_vsock", &py_h))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_supports_vsock (h);
  Py_END_ALLOW_THREADS;
  py_ret = ret ? Py_True : Py_False;
  Py_INCREF (py_ret);

 out:
  return py_ret;
}

PyObject *
nbd_internal_py_supports_uri (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int ret;
  PyObject *py_ret = NULL;

  if (!PyArg_ParseTuple (args, "O:nbd_supports_uri", &py_h))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_supports_uri (h);
  Py_END_ALLOW_THREADS;
  py_ret = ret ? Py_True : Py_False;
  Py_INCREF (py_ret);

 out:
  return py_ret;
}

PyObject *
nbd_internal_py_get_uri (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  char * ret;
  PyObject *py_ret = NULL;

  if (!PyArg_ParseTuple (args, "O:nbd_get_uri", &py_h))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_get_uri (h);
  Py_END_ALLOW_THREADS;
  if (ret == NULL) {
    raise_exception ();
    goto out;
  }
  py_ret = PyUnicode_FromString (ret);
  free (ret);

 out:
  return py_ret;
}

PyObject *
nbd_internal_py_is_uri (PyObject *self, PyObject *args)
{
  PyObject *py_h;
  struct nbd_handle *h;
  int ret;
  PyObject *py_ret = NULL;
  const char *uri;

  if (!PyArg_ParseTuple (args, "Os:nbd_is_uri", &py_h, &uri))
    goto out;
  h = get_handle (py_h);
  if (!h) goto out;

  Py_BEGIN_ALLOW_THREADS;
  ret = nbd_is_uri (h, uri);
  Py_END_ALLOW_THREADS;
  if (ret == -1) {
    raise_exception ();
    goto out;
  }
  py_ret = ret ? Py_True : Py_False;
  Py_INCREF (py_ret);

 out:
  return py_ret;
}

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 /* NBD client library in userspace
 * WARNING: THIS FILE IS GENERATED FROM
 * generator/generator
 * ANY CHANGES YOU MAKE TO THIS FILE WILL BE LOST.
 *
 * Copyright Red Hat
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
 */

package libnbd

/*
#cgo pkg-config: libnbd
#cgo CFLAGS: -D_GNU_SOURCE=1

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#include "libnbd.h"
#include "wrappers.h"

// There must be no blank line between end comment and import!
// https://github.com/golang/go/issues/9733
*/
import "C"

import (
    "runtime"
    "unsafe"
)

/* Enums. */
type Tls int

const (
    TLS_DISABLE = Tls(0)
    TLS_ALLOW = Tls(1)
    TLS_REQUIRE = Tls(2)
)

type Size int

const (
    SIZE_MINIMUM = Size(0)
    SIZE_PREFERRED = Size(1)
    SIZE_MAXIMUM = Size(2)
    SIZE_PAYLOAD = Size(3)
)

/* Flags. */
type CmdFlag uint32

const (
    CMD_FLAG_FUA = CmdFlag(0x01)
    CMD_FLAG_NO_HOLE = CmdFlag(0x02)
    CMD_FLAG_DF = CmdFlag(0x04)
    CMD_FLAG_REQ_ONE = CmdFlag(0x08)
    CMD_FLAG_FAST_ZERO = CmdFlag(0x10)
    CMD_FLAG_PAYLOAD_LEN = CmdFlag(0x20)
    CMD_FLAG_MASK = CmdFlag(0x3f)
)

type HandshakeFlag uint32

const (
    HANDSHAKE_FLAG_FIXED_NEWSTYLE = HandshakeFlag(0x01)
    HANDSHAKE_FLAG_NO_ZEROES = HandshakeFlag(0x02)
    HANDSHAKE_FLAG_MASK = HandshakeFlag(0x03)
)

type Strict uint32

const (
    STRICT_COMMANDS = Strict(0x01)
    STRICT_FLAGS = Strict(0x02)
    STRICT_BOUNDS = Strict(0x04)
    STRICT_ZERO_SIZE = Strict(0x08)
    STRICT_ALIGN = Strict(0x10)
    STRICT_PAYLOAD = Strict(0x20)
    STRICT_AUTO_FLAG = Strict(0x40)
    STRICT_MASK = Strict(0x7f)
)

type AllowTransport uint32

const (
    ALLOW_TRANSPORT_TCP = AllowTransport(0x01)
    ALLOW_TRANSPORT_UNIX = AllowTransport(0x02)
    ALLOW_TRANSPORT_VSOCK = AllowTransport(0x04)
    ALLOW_TRANSPORT_SSH = AllowTransport(0x08)
    ALLOW_TRANSPORT_MASK = AllowTransport(0x0f)
)

type Shutdown uint32

const (
    SHUTDOWN_ABANDON_PENDING = Shutdown(0x10000)
    SHUTDOWN_MASK = Shutdown(0x10000)
)

/* Constants. */
const (
    AIO_DIRECTION_READ uint32 = 1
    AIO_DIRECTION_WRITE uint32 = 2
    AIO_DIRECTION_BOTH uint32 = 3
    READ_DATA uint32 = 1
    READ_HOLE uint32 = 2
    READ_ERROR uint32 = 3
    /* Meta-context namespace "base" */
    NAMESPACE_BASE = "base:"
    CONTEXT_BASE_ALLOCATION = "base:allocation"
    /* Defined bits in "base:allocation" */
    STATE_HOLE uint32 = 1
    STATE_ZERO uint32 = 2
    /* Meta-context namespace "qemu" */
    NAMESPACE_QEMU = "qemu:"
    CONTEXT_QEMU_DIRTY_BITMAP = "qemu:dirty-bitmap:"
    /* Defined bits in "qemu:dirty-bitmap:" */
    STATE_DIRTY uint32 = 1
    CONTEXT_QEMU_ALLOCATION_DEPTH = "qemu:allocation-depth"
)

/* SetDebug: set or clear the debug flag */
func (h *Libnbd) SetDebug(debug bool) error {
    if h.h == nil {
        return closed_handle_error("set_debug")
    }

    var c_err C.struct_error
    c_debug := C.bool(debug)

    ret := C._nbd_set_debug_wrapper(&c_err, h.h, c_debug)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("set_debug", c_err)
        C.free_error(&c_err)
        return err
    }
    return nil
}

/* GetDebug: return the state of the debug flag */
func (h *Libnbd) GetDebug() (bool, error) {
    if h.h == nil {
        return false, closed_handle_error("get_debug")
    }

    var c_err C.struct_error

    ret := C._nbd_get_debug_wrapper(&c_err, h.h)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("get_debug", c_err)
        C.free_error(&c_err)
        return false, err
    }
    return int(ret) != 0, nil
}

/* SetDebugCallback: set the debug callback */
func (h *Libnbd) SetDebugCallback(debug DebugCallback) error {
    if h.h == nil {
        return closed_handle_error("set_debug_callback")
    }

    var c_err C.struct_error
    var c_debug C.nbd_debug_callback
    c_debug.callback = (*[0]byte)(C._nbd_debug_callback_wrapper)
    c_debug.free = (*[0]byte)(C._nbd_debug_callback_free)
    debug_cbid := registerCallbackId(debug)
    c_debug.user_data = C.alloc_cbid(C.long(debug_cbid))

    ret := C._nbd_set_debug_callback_wrapper(&c_err, h.h, c_debug)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("set_debug_callback", c_err)
        C.free_error(&c_err)
        return err
    }
    return nil
}

/* ClearDebugCallback: clear the debug callback */
func (h *Libnbd) ClearDebugCallback() error {
    if h.h == nil {
        return closed_handle_error("clear_debug_callback")
    }

    var c_err C.struct_error

    ret := C._nbd_clear_debug_callback_wrapper(&c_err, h.h)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("clear_debug_callback", c_err)
        C.free_error(&c_err)
        return err
    }
    return nil
}

/* StatsBytesSent: statistics of bytes sent over connection so far */
func (h *Libnbd) StatsBytesSent() (uint64, error) {
    if h.h == nil {
        return 0, closed_handle_error("stats_bytes_sent")
    }

    var c_err C.struct_error

    ret := C._nbd_stats_bytes_sent_wrapper(&c_err, h.h)
    runtime.KeepAlive(h.h)
    return uint64(ret), nil
}

/* StatsChunksSent: statistics of chunks sent over connection so far */
func (h *Libnbd) StatsChunksSent() (uint64, error) {
    if h.h == nil {
        return 0, closed_handle_error("stats_chunks_sent")
    }

    var c_err C.struct_error

    ret := C._nbd_stats_chunks_sent_wrapper(&c_err, h.h)
    runtime.KeepAlive(h.h)
    return uint64(ret), nil
}

/* StatsBytesReceived: statistics of bytes received over connection so far */
func (h *Libnbd) StatsBytesReceived() (uint64, error) {
    if h.h == nil {
        return 0, closed_handle_error("stats_bytes_received")
    }

    var c_err C.struct_error

    ret := C._nbd_stats_bytes_received_wrapper(&c_err, h.h)
    runtime.KeepAlive(h.h)
    return uint64(ret), nil
}

/* StatsChunksReceived: statistics of chunks received over connection so far */
func (h *Libnbd) StatsChunksReceived() (uint64, error) {
    if h.h == nil {
        return 0, closed_handle_error("stats_chunks_received")
    }

    var c_err C.struct_error

    ret := C._nbd_stats_chunks_received_wrapper(&c_err, h.h)
    runtime.KeepAlive(h.h)
    return uint64(ret), nil
}

/* SetHandleName: set the handle name */
func (h *Libnbd) SetHandleName(handle_name string) error {
    if h.h == nil {
        return closed_handle_error("set_handle_name")
    }

    var c_err C.struct_error
    c_handle_name := C.CString(handle_name)
    defer C.free(unsafe.Pointer(c_handle_name))

    ret := C._nbd_set_handle_name_wrapper(&c_err, h.h, c_handle_name)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("set_handle_name", c_err)
        C.free_error(&c_err)
        return err
    }
    return nil
}

/* GetHandleName: get the handle name */
func (h *Libnbd) GetHandleName() (*string, error) {
    if h.h == nil {
        return nil, closed_handle_error("get_handle_name")
    }

    var c_err C.struct_error

    ret := C._nbd_get_handle_name_wrapper(&c_err, h.h)
    runtime.KeepAlive(h.h)
    if ret == nil {
        err := get_error("get_handle_name", c_err)
        C.free_error(&c_err)
        return nil, err
    }
    r := C.GoString(ret)
    C.free(unsafe.Pointer(ret))
    return &r, nil
}

/* SetPrivateData: set the per-handle private data */
func (h *Libnbd) SetPrivateData(private_data uint) (uint, error) {
    if h.h == nil {
        return 0, closed_handle_error("set_private_data")
    }

    var c_err C.struct_error
    c_private_data := C.uintptr_t(private_data)

    ret := C._nbd_set_private_data_wrapper(&c_err, h.h, c_private_data)
    runtime.KeepAlive(h.h)
    return uint(ret), nil
}

/* GetPrivateData: get the per-handle private data */
func (h *Libnbd) GetPrivateData() (uint, error) {
    if h.h == nil {
        return 0, closed_handle_error("get_private_data")
    }

    var c_err C.struct_error

    ret := C._nbd_get_private_data_wrapper(&c_err, h.h)
    runtime.KeepAlive(h.h)
    return uint(ret), nil
}

/* SetExportName: set the export name */
func (h *Libnbd) SetExportName(export_name string) error {
    if h.h == nil {
        return closed_handle_error("set_export_name")
    }

    var c_err C.struct_error
    c_export_name := C.CString(export_name)
    defer C.free(unsafe.Pointer(c_export_name))

    ret := C._nbd_set_export_name_wrapper(&c_err, h.h, c_export_name)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("set_export_name", c_err)
        C.free_error(&c_err)
        return err
    }
    return nil
}

/* GetExportName: get the export name */
func (h *Libnbd) GetExportName() (*string, error) {
    if h.h == nil {
        return nil, closed_handle_error("get_export_name")
    }

    var c_err C.struct_error

    ret := C._nbd_get_export_name_wrapper(&c_err, h.h)
    runtime.KeepAlive(h.h)
    if ret == nil {
        err := get_error("get_export_name", c_err)
        C.free_error(&c_err)
        return nil, err
    }
    r := C.GoString(ret)
    C.free(unsafe.Pointer(ret))
    return &r, nil
}

/* SetRequestBlockSize: control whether NBD_OPT_GO requests block size */
func (h *Libnbd) SetRequestBlockSize(request bool) error {
    if h.h == nil {
        return closed_handle_error("set_request_block_size")
    }

    var c_err C.struct_error
    c_request := C.bool(request)

    ret := C._nbd_set_request_block_size_wrapper(&c_err, h.h, c_request)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("set_request_block_size", c_err)
        C.free_error(&c_err)
        return err
    }
    return nil
}

/* GetRequestBlockSize: see if NBD_OPT_GO requests block size */
func (h *Libnbd) GetRequestBlockSize() (bool, error) {
    if h.h == nil {
        return false, closed_handle_error("get_request_block_size")
    }

    var c_err C.struct_error

    ret := C._nbd_get_request_block_size_wrapper(&c_err, h.h)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("get_request_block_size", c_err)
        C.free_error(&c_err)
        return false, err
    }
    return int(ret) != 0, nil
}

/* SetFullInfo: control whether NBD_OPT_GO requests extra details */
func (h *Libnbd) SetFullInfo(request bool) error {
    if h.h == nil {
        return closed_handle_error("set_full_info")
    }

    var c_err C.struct_error
    c_request := C.bool(request)

    ret := C._nbd_set_full_info_wrapper(&c_err, h.h, c_request)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("set_full_info", c_err)
        C.free_error(&c_err)
        return err
    }
    return nil
}

/* GetFullInfo: see if NBD_OPT_GO requests extra details */
func (h *Libnbd) GetFullInfo() (bool, error) {
    if h.h == nil {
        return false, closed_handle_error("get_full_info")
    }

    var c_err C.struct_error

    ret := C._nbd_get_full_info_wrapper(&c_err, h.h)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("get_full_info", c_err)
        C.free_error(&c_err)
        return false, err
    }
    return int(ret) != 0, nil
}

/* GetCanonicalExportName: return the canonical export name, if the server has one */
func (h *Libnbd) GetCanonicalExportName() (*string, error) {
    if h.h == nil {
        return nil, closed_handle_error("get_canonical_export_name")
    }

    var c_err C.struct_error

    ret := C._nbd_get_canonical_export_name_wrapper(&c_err, h.h)
    runtime.KeepAlive(h.h)
    if ret == nil {
        err := get_error("get_canonical_export_name", c_err)
        C.free_error(&c_err)
        return nil, err
    }
    r := C.GoString(ret)
    C.free(unsafe.Pointer(ret))
    return &r, nil
}

/* GetExportDescription: return the export description, if the server has one */
func (h *Libnbd) GetExportDescription() (*string, error) {
    if h.h == nil {
        return nil, closed_handle_error("get_export_description")
    }

    var c_err C.struct_error

    ret := C._nbd_get_export_description_wrapper(&c_err, h.h)
    runtime.KeepAlive(h.h)
    if ret == nil {
        err := get_error("get_export_description", c_err)
        C.free_error(&c_err)
        return nil, err
    }
    r := C.GoString(ret)
    C.free(unsafe.Pointer(ret))
    return &r, nil
}

/* SetTls: enable or require TLS (authentication and encryption) */
func (h *Libnbd) SetTls(tls Tls) error {
    if h.h == nil {
        return closed_handle_error("set_tls")
    }

    var c_err C.struct_error
    c_tls := C.int(tls)

    ret := C._nbd_set_tls_wrapper(&c_err, h.h, c_tls)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("set_tls", c_err)
        C.free_error(&c_err)
        return err
    }
    return nil
}

/* GetTls: get the TLS request setting */
func (h *Libnbd) GetTls() (Tls, error) {
    if h.h == nil {
        return 0, closed_handle_error("get_tls")
    }

    var c_err C.struct_error

    ret := C._nbd_get_tls_wrapper(&c_err, h.h)
    runtime.KeepAlive(h.h)
    return Tls(ret), nil
}

/* GetTlsNegotiated: find out if TLS was negotiated on a connection */
func (h *Libnbd) GetTlsNegotiated() (bool, error) {
    if h.h == nil {
        return false, closed_handle_error("get_tls_negotiated")
    }

    var c_err C.struct_error

    ret := C._nbd_get_tls_negotiated_wrapper(&c_err, h.h)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("get_tls_negotiated", c_err)
        C.free_error(&c_err)
        return false, err
    }
    return int(ret) != 0, nil
}

/* SetTlsCertificates: set the path to the TLS certificates directory */
func (h *Libnbd) SetTlsCertificates(dir string) error {
    if h.h == nil {
        return closed_handle_error("set_tls_certificates")
    }

    var c_err C.struct_error
    c_dir := C.CString(dir)
    defer C.free(unsafe.Pointer(c_dir))

    ret := C._nbd_set_tls_certificates_wrapper(&c_err, h.h, c_dir)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("set_tls_certificates", c_err)
        C.free_error(&c_err)
        return err
    }
    return nil
}

/* SetTlsVerifyPeer: set whether we verify the identity of the server */
func (h *Libnbd) SetTlsVerifyPeer(verify bool) error {
    if h.h == nil {
        return closed_handle_error("set_tls_verify_peer")
    }

    var c_err C.struct_error
    c_verify := C.bool(verify)

    ret := C._nbd_set_tls_verify_peer_wrapper(&c_err, h.h, c_verify)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("set_tls_verify_peer", c_err)
        C.free_error(&c_err)
        return err
    }
    return nil
}

/* GetTlsVerifyPeer: get whether we verify the identity of the server */
func (h *Libnbd) GetTlsVerifyPeer() (bool, error) {
    if h.h == nil {
        return false, closed_handle_error("get_tls_verify_peer")
    }

    var c_err C.struct_error

    ret := C._nbd_get_tls_verify_peer_wrapper(&c_err, h.h)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("get_tls_verify_peer", c_err)
        C.free_error(&c_err)
        return false, err
    }
    return int(ret) != 0, nil
}

/* SetTlsUsername: set the TLS username */
func (h *Libnbd) SetTlsUsername(username string) error {
    if h.h == nil {
        return closed_handle_error("set_tls_username")
    }

    var c_err C.struct_error
    c_username := C.CString(username)
    defer C.free(unsafe.Pointer(c_username))

    ret := C._nbd_set_tls_username_wrapper(&c_err, h.h, c_username)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("set_tls_username", c_err)
        C.free_error(&c_err)
        return err
    }
    return nil
}

/* GetTlsUsername: get the current TLS username */
func (h *Libnbd) GetTlsUsername() (*string, error) {
    if h.h == nil {
        return nil, closed_handle_error("get_tls_username")
    }

    var c_err C.struct_error

    ret := C._nbd_get_tls_username_wrapper(&c_err, h.h)
    runtime.KeepAlive(h.h)
    if ret == nil {
        err := get_error("get_tls_username", c_err)
        C.free_error(&c_err)
        return nil, err
    }
    r := C.GoString(ret)
    C.free(unsafe.Pointer(ret))
    return &r, nil
}

/* SetTlsHostname: set the TLS hostname */
func (h *Libnbd) SetTlsHostname(hostname string) error {
    if h.h == nil {
        return closed_handle_error("set_tls_hostname")
    }

    var c_err C.struct_error
    c_hostname := C.CString(hostname)
    defer C.free(unsafe.Pointer(c_hostname))

    ret := C._nbd_set_tls_hostname_wrapper(&c_err, h.h, c_hostname)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("set_tls_hostname", c_err)
        C.free_error(&c_err)
        return err
    }
    return nil
}

/* GetTlsHostname: get the effective TLS hostname */
func (h *Libnbd) GetTlsHostname() (*string, error) {
    if h.h == nil {
        return nil, closed_handle_error("get_tls_hostname")
    }

    var c_err C.struct_error

    ret := C._nbd_get_tls_hostname_wrapper(&c_err, h.h)
    runtime.KeepAlive(h.h)
    if ret == nil {
        err := get_error("get_tls_hostname", c_err)
        C.free_error(&c_err)
        return nil, err
    }
    r := C.GoString(ret)
    C.free(unsafe.Pointer(ret))
    return &r, nil
}

/* SetTlsPskFile: set the TLS Pre-Shared Keys (PSK) filename */
func (h *Libnbd) SetTlsPskFile(filename string) error {
    if h.h == nil {
        return closed_handle_error("set_tls_psk_file")
    }

    var c_err C.struct_error
    c_filename := C.CString(filename)
    defer C.free(unsafe.Pointer(c_filename))

    ret := C._nbd_set_tls_psk_file_wrapper(&c_err, h.h, c_filename)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("set_tls_psk_file", c_err)
        C.free_error(&c_err)
        return err
    }
    return nil
}

/* SetRequestExtendedHeaders: control use of extended headers */
func (h *Libnbd) SetRequestExtendedHeaders(request bool) error {
    if h.h == nil {
        return closed_handle_error("set_request_extended_headers")
    }

    var c_err C.struct_error
    c_request := C.bool(request)

    ret := C._nbd_set_request_extended_headers_wrapper(&c_err, h.h, c_request)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("set_request_extended_headers", c_err)
        C.free_error(&c_err)
        return err
    }
    return nil
}

/* GetRequestExtendedHeaders: see if extended headers are attempted */
func (h *Libnbd) GetRequestExtendedHeaders() (bool, error) {
    if h.h == nil {
        return false, closed_handle_error("get_request_extended_headers")
    }

    var c_err C.struct_error

    ret := C._nbd_get_request_extended_headers_wrapper(&c_err, h.h)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("get_request_extended_headers", c_err)
        C.free_error(&c_err)
        return false, err
    }
    return int(ret) != 0, nil
}

/* GetExtendedHeadersNegotiated: see if extended headers are in use */
func (h *Libnbd) GetExtendedHeadersNegotiated() (bool, error) {
    if h.h == nil {
        return false, closed_handle_error("get_extended_headers_negotiated")
    }

    var c_err C.struct_error

    ret := C._nbd_get_extended_headers_negotiated_wrapper(&c_err, h.h)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("get_extended_headers_negotiated", c_err)
        C.free_error(&c_err)
        return false, err
    }
    return int(ret) != 0, nil
}

/* SetRequestStructuredReplies: control use of structured replies */
func (h *Libnbd) SetRequestStructuredReplies(request bool) error {
    if h.h == nil {
        return closed_handle_error("set_request_structured_replies")
    }

    var c_err C.struct_error
    c_request := C.bool(request)

    ret := C._nbd_set_request_structured_replies_wrapper(&c_err, h.h, c_request)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("set_request_structured_replies", c_err)
        C.free_error(&c_err)
        return err
    }
    return nil
}

/* GetRequestStructuredReplies: see if structured replies are attempted */
func (h *Libnbd) GetRequestStructuredReplies() (bool, error) {
    if h.h == nil {
        return false, closed_handle_error("get_request_structured_replies")
    }

    var c_err C.struct_error

    ret := C._nbd_get_request_structured_replies_wrapper(&c_err, h.h)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("get_request_structured_replies", c_err)
        C.free_error(&c_err)
        return false, err
    }
    return int(ret) != 0, nil
}

/* GetStructuredRepliesNegotiated: see if structured replies are in use */
func (h *Libnbd) GetStructuredRepliesNegotiated() (bool, error) {
    if h.h == nil {
        return false, closed_handle_error("get_structured_replies_negotiated")
    }

    var c_err C.struct_error

    ret := C._nbd_get_structured_replies_negotiated_wrapper(&c_err, h.h)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("get_structured_replies_negotiated", c_err)
        C.free_error(&c_err)
        return false, err
    }
    return int(ret) != 0, nil
}

/* SetRequestMetaContext: control whether connect automatically requests meta contexts */
func (h *Libnbd) SetRequestMetaContext(request bool) error {
    if h.h == nil {
        return closed_handle_error("set_request_meta_context")
    }

    var c_err C.struct_error
    c_request := C.bool(request)

    ret := C._nbd_set_request_meta_context_wrapper(&c_err, h.h, c_request)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("set_request_meta_context", c_err)
        C.free_error(&c_err)
        return err
    }
    return nil
}

/* GetRequestMetaContext: see if connect automatically requests meta contexts */
func (h *Libnbd) GetRequestMetaContext() (bool, error) {
    if h.h == nil {
        return false, closed_handle_error("get_request_meta_context")
    }

    var c_err C.struct_error

    ret := C._nbd_get_request_meta_context_wrapper(&c_err, h.h)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("get_request_meta_context", c_err)
        C.free_error(&c_err)
        return false, err
    }
    return int(ret) != 0, nil
}

/* SetHandshakeFlags: control use of handshake flags */
func (h *Libnbd) SetHandshakeFlags(flags HandshakeFlag) error {
    if h.h == nil {
        return closed_handle_error("set_handshake_flags")
    }

    var c_err C.struct_error
    c_flags := C.uint32_t(flags)

    ret := C._nbd_set_handshake_flags_wrapper(&c_err, h.h, c_flags)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("set_handshake_flags", c_err)
        C.free_error(&c_err)
        return err
    }
    return nil
}

/* GetHandshakeFlags: see which handshake flags are supported */
func (h *Libnbd) GetHandshakeFlags() (HandshakeFlag, error) {
    if h.h == nil {
        return 0, closed_handle_error("get_handshake_flags")
    }

    var c_err C.struct_error

    ret := C._nbd_get_handshake_flags_wrapper(&c_err, h.h)
    runtime.KeepAlive(h.h)
    return HandshakeFlag(ret), nil
}

/* SetPreadInitialize: control whether libnbd pre-initializes read buffers */
func (h *Libnbd) SetPreadInitialize(request bool) error {
    if h.h == nil {
        return closed_handle_error("set_pread_initialize")
    }

    var c_err C.struct_error
    c_request := C.bool(request)

    ret := C._nbd_set_pread_initialize_wrapper(&c_err, h.h, c_request)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("set_pread_initialize", c_err)
        C.free_error(&c_err)
        return err
    }
    return nil
}

/* GetPreadInitialize: see whether libnbd pre-initializes read buffers */
func (h *Libnbd) GetPreadInitialize() (bool, error) {
    if h.h == nil {
        return false, closed_handle_error("get_pread_initialize")
    }

    var c_err C.struct_error

    ret := C._nbd_get_pread_initialize_wrapper(&c_err, h.h)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("get_pread_initialize", c_err)
        C.free_error(&c_err)
        return false, err
    }
    return int(ret) != 0, nil
}

/* SetStrictMode: control how strictly to follow NBD protocol */
func (h *Libnbd) SetStrictMode(flags Strict) error {
    if h.h == nil {
        return closed_handle_error("set_strict_mode")
    }

    var c_err C.struct_error
    c_flags := C.uint32_t(flags)

    ret := C._nbd_set_strict_mode_wrapper(&c_err, h.h, c_flags)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("set_strict_mode", c_err)
        C.free_error(&c_err)
        return err
    }
    return nil
}

/* GetStrictMode: see which strictness flags are in effect */
func (h *Libnbd) GetStrictMode() (Strict, error) {
    if h.h == nil {
        return 0, closed_handle_error("get_strict_mode")
    }

    var c_err C.struct_error

    ret := C._nbd_get_strict_mode_wrapper(&c_err, h.h)
    runtime.KeepAlive(h.h)
    return Strict(ret), nil
}

/* SetOptMode: control option mode, for pausing during option negotiation */
func (h *Libnbd) SetOptMode(enable bool) error {
    if h.h == nil {
        return closed_handle_error("set_opt_mode")
    }

    var c_err C.struct_error
    c_enable := C.bool(enable)

    ret := C._nbd_set_opt_mode_wrapper(&c_err, h.h, c_enable)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("set_opt_mode", c_err)
        C.free_error(&c_err)
        return err
    }
    return nil
}

/* GetOptMode: return whether option mode was enabled */
func (h *Libnbd) GetOptMode() (bool, error) {
    if h.h == nil {
        return false, closed_handle_error("get_opt_mode")
    }

    var c_err C.struct_error

    ret := C._nbd_get_opt_mode_wrapper(&c_err, h.h)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("get_opt_mode", c_err)
        C.free_error(&c_err)
        return false, err
    }
    return int(ret) != 0, nil
}

/* OptGo: end negotiation and move on to using an export */
func (h *Libnbd) OptGo() error {
    if h.h == nil {
        return closed_handle_error("opt_go")
    }

    var c_err C.struct_error

    ret := C._nbd_opt_go_wrapper(&c_err, h.h)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("opt_go", c_err)
        C.free_error(&c_err)
        return err
    }
    return nil
}

/* OptAbort: end negotiation and close the connection */
func (h *Libnbd) OptAbort() error {
    if h.h == nil {
        return closed_handle_error("opt_abort")
    }

    var c_err C.struct_error

    ret := C._nbd_opt_abort_wrapper(&c_err, h.h)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("opt_abort", c_err)
        C.free_error(&c_err)
        return err
    }
    return nil
}

/* OptStarttls: request the server to initiate TLS */
func (h *Libnbd) OptStarttls() (bool, error) {
    if h.h == nil {
        return false, closed_handle_error("opt_starttls")
    }

    var c_err C.struct_error

    ret := C._nbd_opt_starttls_wrapper(&c_err, h.h)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("opt_starttls", c_err)
        C.free_error(&c_err)
        return false, err
    }
    return int(ret) != 0, nil
}

/* OptExtendedHeaders: request the server to enable extended headers */
func (h *Libnbd) OptExtendedHeaders() (bool, error) {
    if h.h == nil {
        return false, closed_handle_error("opt_extended_headers")
    }

    var c_err C.struct_error

    ret := C._nbd_opt_extended_headers_wrapper(&c_err, h.h)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("opt_extended_headers", c_err)
        C.free_error(&c_err)
        return false, err
    }
    return int(ret) != 0, nil
}

/* OptStructuredReply: request the server to enable structured replies */
func (h *Libnbd) OptStructuredReply() (bool, error) {
    if h.h == nil {
        return false, closed_handle_error("opt_structured_reply")
    }

    var c_err C.struct_error

    ret := C._nbd_opt_structured_reply_wrapper(&c_err, h.h)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("opt_structured_reply", c_err)
        C.free_error(&c_err)
        return false, err
    }
    return int(ret) != 0, nil
}

/* OptList: request the server to list all exports during negotiation */
func (h *Libnbd) OptList(list ListCallback) (uint, error) {
    if h.h == nil {
        return 0, closed_handle_error("opt_list")
    }

    var c_err C.struct_error
    var c_list C.nbd_list_callback
    c_list.callback = (*[0]byte)(C._nbd_list_callback_wrapper)
    c_list.free = (*[0]byte)(C._nbd_list_callback_free)
    list_cbid := registerCallbackId(list)
    c_list.user_data = C.alloc_cbid(C.long(list_cbid))

    ret := C._nbd_opt_list_wrapper(&c_err, h.h, c_list)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("opt_list", c_err)
        C.free_error(&c_err)
        return 0, err
    }
    return uint(ret), nil
}

/* OptInfo: request the server for information about an export */
func (h *Libnbd) OptInfo() error {
    if h.h == nil {
        return closed_handle_error("opt_info")
    }

    var c_err C.struct_error

    ret := C._nbd_opt_info_wrapper(&c_err, h.h)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("opt_info", c_err)
        C.free_error(&c_err)
        return err
    }
    return nil
}

/* OptListMetaContext: list available meta contexts, using implicit query list */
func (h *Libnbd) OptListMetaContext(context ContextCallback) (uint, error) {
    if h.h == nil {
        return 0, closed_handle_error("opt_list_meta_context")
    }

    var c_err C.struct_error
    var c_context C.nbd_context_callback
    c_context.callback = (*[0]byte)(C._nbd_context_callback_wrapper)
    c_context.free = (*[0]byte)(C._nbd_context_callback_free)
    context_cbid := registerCallbackId(context)
    c_context.user_data = C.alloc_cbid(C.long(context_cbid))

    ret := C._nbd_opt_list_meta_context_wrapper(&c_err, h.h, c_context)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("opt_list_meta_context", c_err)
        C.free_error(&c_err)
        return 0, err
    }
    return uint(ret), nil
}

/* OptListMetaContextQueries: list available meta contexts, using explicit query list */
func (h *Libnbd) OptListMetaContextQueries(queries []string, context ContextCallback) (uint, error) {
    if h.h == nil {
        return 0, closed_handle_error("opt_list_meta_context_queries")
    }

    var c_err C.struct_error
    c_queries := arg_string_list(queries)
    defer free_string_list(c_queries)
    var c_context C.nbd_context_callback
    c_context.callback = (*[0]byte)(C._nbd_context_callback_wrapper)
    c_context.free = (*[0]byte)(C._nbd_context_callback_free)
    context_cbid := registerCallbackId(context)
    c_context.user_data = C.alloc_cbid(C.long(context_cbid))

    ret := C._nbd_opt_list_meta_context_queries_wrapper(&c_err, h.h, &c_queries[0], c_context)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("opt_list_meta_context_queries", c_err)
        C.free_error(&c_err)
        return 0, err
    }
    return uint(ret), nil
}

/* OptSetMetaContext: select specific meta contexts, using implicit query list */
func (h *Libnbd) OptSetMetaContext(context ContextCallback) (uint, error) {
    if h.h == nil {
        return 0, closed_handle_error("opt_set_meta_context")
    }

    var c_err C.struct_error
    var c_context C.nbd_context_callback
    c_context.callback = (*[0]byte)(C._nbd_context_callback_wrapper)
    c_context.free = (*[0]byte)(C._nbd_context_callback_free)
    context_cbid := registerCallbackId(context)
    c_context.user_data = C.alloc_cbid(C.long(context_cbid))

    ret := C._nbd_opt_set_meta_context_wrapper(&c_err, h.h, c_context)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("opt_set_meta_context", c_err)
        C.free_error(&c_err)
        return 0, err
    }
    return uint(ret), nil
}

/* OptSetMetaContextQueries: select specific meta contexts, using explicit query list */
func (h *Libnbd) OptSetMetaContextQueries(queries []string, context ContextCallback) (uint, error) {
    if h.h == nil {
        return 0, closed_handle_error("opt_set_meta_context_queries")
    }

    var c_err C.struct_error
    c_queries := arg_string_list(queries)
    defer free_string_list(c_queries)
    var c_context C.nbd_context_callback
    c_context.callback = (*[0]byte)(C._nbd_context_callback_wrapper)
    c_context.free = (*[0]byte)(C._nbd_context_callback_free)
    context_cbid := registerCallbackId(context)
    c_context.user_data = C.alloc_cbid(C.long(context_cbid))

    ret := C._nbd_opt_set_meta_context_queries_wrapper(&c_err, h.h, &c_queries[0], c_context)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("opt_set_meta_context_queries", c_err)
        C.free_error(&c_err)
        return 0, err
    }
    return uint(ret), nil
}

/* AddMetaContext: ask server to negotiate metadata context */
func (h *Libnbd) AddMetaContext(name string) error {
    if h.h == nil {
        return closed_handle_error("add_meta_context")
    }

    var c_err C.struct_error
    c_name := C.CString(name)
    defer C.free(unsafe.Pointer(c_name))

    ret := C._nbd_add_meta_context_wrapper(&c_err, h.h, c_name)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("add_meta_context", c_err)
        C.free_error(&c_err)
        return err
    }
    return nil
}

/* GetNrMetaContexts: return the current number of requested meta contexts */
func (h *Libnbd) GetNrMetaContexts() (uint, error) {
    if h.h == nil {
        return 0, closed_handle_error("get_nr_meta_contexts")
    }

    var c_err C.struct_error

    ret := C._nbd_get_nr_meta_contexts_wrapper(&c_err, h.h)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("get_nr_meta_contexts", c_err)
        C.free_error(&c_err)
        return 0, err
    }
    return uint(ret), nil
}

/* GetMetaContext: return the i'th meta context request */
func (h *Libnbd) GetMetaContext(i int) (*string, error) {
    if h.h == nil {
        return nil, closed_handle_error("get_meta_context")
    }

    var c_err C.struct_error
    c_i := C.size_t(i)

    ret := C._nbd_get_meta_context_wrapper(&c_err, h.h, c_i)
    runtime.KeepAlive(h.h)
    if ret == nil {
        err := get_error("get_meta_context", c_err)
        C.free_error(&c_err)
        return nil, err
    }
    r := C.GoString(ret)
    C.free(unsafe.Pointer(ret))
    return &r, nil
}

/* ClearMetaContexts: reset the list of requested meta contexts */
func (h *Libnbd) ClearMetaContexts() error {
    if h.h == nil {
        return closed_handle_error("clear_meta_contexts")
    }

    var c_err C.struct_error

    ret := C._nbd_clear_meta_contexts_wrapper(&c_err, h.h)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("clear_meta_contexts", c_err)
        C.free_error(&c_err)
        return err
    }
    return nil
}

/* SetUriAllowTransports: set the allowed transports in NBD URIs */
func (h *Libnbd) SetUriAllowTransports(mask AllowTransport) error {
    if h.h == nil {
        return closed_handle_error("set_uri_allow_transports")
    }

    var c_err C.struct_error
    c_mask := C.uint32_t(mask)

    ret := C._nbd_set_uri_allow_transports_wrapper(&c_err, h.h, c_mask)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("set_uri_allow_transports", c_err)
        C.free_error(&c_err)
        return err
    }
    return nil
}

/* SetUriAllowTls: set the allowed TLS settings in NBD URIs */
func (h *Libnbd) SetUriAllowTls(tls Tls) error {
    if h.h == nil {
        return closed_handle_error("set_uri_allow_tls")
    }

    var c_err C.struct_error
    c_tls := C.int(tls)

    ret := C._nbd_set_uri_allow_tls_wrapper(&c_err, h.h, c_tls)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("set_uri_allow_tls", c_err)
        C.free_error(&c_err)
        return err
    }
    return nil
}

/* SetUriAllowLocalFile: set the allowed transports in NBD URIs */
func (h *Libnbd) SetUriAllowLocalFile(allow bool) error {
    if h.h == nil {
        return closed_handle_error("set_uri_allow_local_file")
    }

    var c_err C.struct_error
    c_allow := C.bool(allow)

    ret := C._nbd_set_uri_allow_local_file_wrapper(&c_err, h.h, c_allow)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("set_uri_allow_local_file", c_err)
        C.free_error(&c_err)
        return err
    }
    return nil
}

/* ConnectUri: connect to NBD URI */
func (h *Libnbd) ConnectUri(uri string) error {
    if h.h == nil {
        return closed_handle_error("connect_uri")
    }

    var c_err C.struct_error
    c_uri := C.CString(uri)
    defer C.free(unsafe.Pointer(c_uri))

    ret := C._nbd_connect_uri_wrapper(&c_err, h.h, c_uri)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("connect_uri", c_err)
        C.free_error(&c_err)
        return err
    }
    return nil
}

/* ConnectUnix: connect to NBD server over a Unix domain socket */
func (h *Libnbd) ConnectUnix(unixsocket string) error {
    if h.h == nil {
        return closed_handle_error("connect_unix")
    }

    var c_err C.struct_error
    c_unixsocket := C.CString(unixsocket)
    defer C.free(unsafe.Pointer(c_unixsocket))

    ret := C._nbd_connect_unix_wrapper(&c_err, h.h, c_unixsocket)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("connect_unix", c_err)
        C.free_error(&c_err)
        return err
    }
    return nil
}

/* ConnectVsock: connect to NBD server over AF_VSOCK protocol */
func (h *Libnbd) ConnectVsock(cid uint32, port uint32) error {
    if h.h == nil {
        return closed_handle_error("connect_vsock")
    }

    var c_err C.struct_error
    c_cid := C.uint32_t(cid)
    c_port := C.uint32_t(port)

    ret := C._nbd_connect_vsock_wrapper(&c_err, h.h, c_cid, c_port)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("connect_vsock", c_err)
        C.free_error(&c_err)
        return err
    }
    return nil
}

/* ConnectTcp: connect to NBD server over a TCP port */
func (h *Libnbd) ConnectTcp(hostname string, port string) error {
    if h.h == nil {
        return closed_handle_error("connect_tcp")
    }

    var c_err C.struct_error
    c_hostname := C.CString(hostname)
    defer C.free(unsafe.Pointer(c_hostname))
    c_port := C.CString(port)
    defer C.free(unsafe.Pointer(c_port))

    ret := C._nbd_connect_tcp_wrapper(&c_err, h.h, c_hostname, c_port)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("connect_tcp", c_err)
        C.free_error(&c_err)
        return err
    }
    return nil
}

/* ConnectSocket: connect directly to a connected socket */
func (h *Libnbd) ConnectSocket(sock int) error {
    if h.h == nil {
        return closed_handle_error("connect_socket")
    }

    var c_err C.struct_error
    c_sock := C.int(sock)

    ret := C._nbd_connect_socket_wrapper(&c_err, h.h, c_sock)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("connect_socket", c_err)
        C.free_error(&c_err)
        return err
    }
    return nil
}

/* ConnectCommand: connect to NBD server command */
func (h *Libnbd) ConnectCommand(argv []string) error {
    if h.h == nil {
        return closed_handle_error("connect_command")
    }

    var c_err C.struct_error
    c_argv := arg_string_list(argv)
    defer free_string_list(c_argv)

    ret := C._nbd_connect_command_wrapper(&c_err, h.h, &c_argv[0])
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("connect_command", c_err)
        C.free_error(&c_err)
        return err
    }
    return nil
}

/* ConnectSystemdSocketActivation: connect using systemd socket activation */
func (h *Libnbd) ConnectSystemdSocketActivation(argv []string) error {
    if h.h == nil {
        return closed_handle_error("connect_systemd_socket_activation")
    }

    var c_err C.struct_error
    c_argv := arg_string_list(argv)
    defer free_string_list(c_argv)

    ret := C._nbd_connect_systemd_socket_activation_wrapper(&c_err, h.h, &c_argv[0])
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("connect_systemd_socket_activation", c_err)
        C.free_error(&c_err)
        return err
    }
    return nil
}

/* SetSocketActivationName: set the socket activation name */
func (h *Libnbd) SetSocketActivationName(socket_name string) error {
    if h.h == nil {
        return closed_handle_error("set_socket_activation_name")
    }

    var c_err C.struct_error
    c_socket_name := C.CString(socket_name)
    defer C.free(unsafe.Pointer(c_socket_name))

    ret := C._nbd_set_socket_activation_name_wrapper(&c_err, h.h, c_socket_name)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("set_socket_activation_name", c_err)
        C.free_error(&c_err)
        return err
    }
    return nil
}

/* GetSocketActivationName: get the socket activation name */
func (h *Libnbd) GetSocketActivationName() (*string, error) {
    if h.h == nil {
        return nil, closed_handle_error("get_socket_activation_name")
    }

    var c_err C.struct_error

    ret := C._nbd_get_socket_activation_name_wrapper(&c_err, h.h)
    runtime.KeepAlive(h.h)
    if ret == nil {
        err := get_error("get_socket_activation_name", c_err)
        C.free_error(&c_err)
        return nil, err
    }
    r := C.GoString(ret)
    C.free(unsafe.Pointer(ret))
    return &r, nil
}

/* IsReadOnly: is the NBD export read-only? */
func (h *Libnbd) IsReadOnly() (bool, error) {
    if h.h == nil {
        return false, closed_handle_error("is_read_only")
    }

    var c_err C.struct_error

    ret := C._nbd_is_read_only_wrapper(&c_err, h.h)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("is_read_only", c_err)
        C.free_error(&c_err)
        return false, err
    }
    return int(ret) != 0, nil
}

/* CanFlush: does the server support the flush command? */
func (h *Libnbd) CanFlush() (bool, error) {
    if h.h == nil {
        return false, closed_handle_error("can_flush")
    }

    var c_err C.struct_error

    ret := C._nbd_can_flush_wrapper(&c_err, h.h)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("can_flush", c_err)
        C.free_error(&c_err)
        return false, err
    }
    return int(ret) != 0, nil
}

/* CanFua: does the server support the FUA flag? */
func (h *Libnbd) CanFua() (bool, error) {
    if h.h == nil {
        return false, closed_handle_error("can_fua")
    }

    var c_err C.struct_error

    ret := C._nbd_can_fua_wrapper(&c_err, h.h)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("can_fua", c_err)
        C.free_error(&c_err)
        return false, err
    }
    return int(ret) != 0, nil
}

/* IsRotational: is the NBD disk rotational (like a disk)? */
func (h *Libnbd) IsRotational() (bool, error) {
    if h.h == nil {
        return false, closed_handle_error("is_rotational")
    }

    var c_err C.struct_error

    ret := C._nbd_is_rotational_wrapper(&c_err, h.h)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("is_rotational", c_err)
        C.free_error(&c_err)
        return false, err
    }
    return int(ret) != 0, nil
}

/* CanTrim: does the server support the trim command? */
func (h *Libnbd) CanTrim() (bool, error) {
    if h.h == nil {
        return false, closed_handle_error("can_trim")
    }

    var c_err C.struct_error

    ret := C._nbd_can_trim_wrapper(&c_err, h.h)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("can_trim", c_err)
        C.free_error(&c_err)
        return false, err
    }
    return int(ret) != 0, nil
}

/* CanZero: does the server support the zero command? */
func (h *Libnbd) CanZero() (bool, error) {
    if h.h == nil {
        return false, closed_handle_error("can_zero")
    }

    var c_err C.struct_error

    ret := C._nbd_can_zero_wrapper(&c_err, h.h)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("can_zero", c_err)
        C.free_error(&c_err)
        return false, err
    }
    return int(ret) != 0, nil
}

/* CanFastZero: does the server support the fast zero flag? */
func (h *Libnbd) CanFastZero() (bool, error) {
    if h.h == nil {
        return false, closed_handle_error("can_fast_zero")
    }

    var c_err C.struct_error

    ret := C._nbd_can_fast_zero_wrapper(&c_err, h.h)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("can_fast_zero", c_err)
        C.free_error(&c_err)
        return false, err
    }
    return int(ret) != 0, nil
}

/* CanBlockStatusPayload: does the server support the block status payload flag? */
func (h *Libnbd) CanBlockStatusPayload() (bool, error) {
    if h.h == nil {
        return false, closed_handle_error("can_block_status_payload")
    }

    var c_err C.struct_error

    ret := C._nbd_can_block_status_payload_wrapper(&c_err, h.h)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("can_block_status_payload", c_err)
        C.free_error(&c_err)
        return false, err
    }
    return int(ret) != 0, nil
}

/* CanDf: does the server support the don't fragment flag to pread? */
func (h *Libnbd) CanDf() (bool, error) {
    if h.h == nil {
        return false, closed_handle_error("can_df")
    }

    var c_err C.struct_error

    ret := C._nbd_can_df_wrapper(&c_err, h.h)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("can_df", c_err)
        C.free_error(&c_err)
        return false, err
    }
    return int(ret) != 0, nil
}

/* CanMultiConn: does the server support multi-conn? */
func (h *Libnbd) CanMultiConn() (bool, error) {
    if h.h == nil {
        return false, closed_handle_error("can_multi_conn")
    }

    var c_err C.struct_error

    ret := C._nbd_can_multi_conn_wrapper(&c_err, h.h)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("can_multi_conn", c_err)
        C.free_error(&c_err)
        return false, err
    }
    return int(ret) != 0, nil
}

/* CanCache: does the server support the cache command? */
func (h *Libnbd) CanCache() (bool, error) {
    if h.h == nil {
        return false, closed_handle_error("can_cache")
    }

    var c_err C.struct_error

    ret := C._nbd_can_cache_wrapper(&c_err, h.h)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("can_cache", c_err)
        C.free_error(&c_err)
        return false, err
    }
    return int(ret) != 0, nil
}

/* CanMetaContext: does the server support a specific meta context? */
func (h *Libnbd) CanMetaContext(metacontext string) (bool, error) {
    if h.h == nil {
        return false, closed_handle_error("can_meta_context")
    }

    var c_err C.struct_error
    c_metacontext := C.CString(metacontext)
    defer C.free(unsafe.Pointer(c_metacontext))

    ret := C._nbd_can_meta_context_wrapper(&c_err, h.h, c_metacontext)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("can_meta_context", c_err)
        C.free_error(&c_err)
        return false, err
    }
    return int(ret) != 0, nil
}

/* GetProtocol: return the NBD protocol variant */
func (h *Libnbd) GetProtocol() (*string, error) {
    if h.h == nil {
        return nil, closed_handle_error("get_protocol")
    }

    var c_err C.struct_error

    ret := C._nbd_get_protocol_wrapper(&c_err, h.h)
    runtime.KeepAlive(h.h)
    if ret == nil {
        err := get_error("get_protocol", c_err)
        C.free_error(&c_err)
        return nil, err
    }
    /* ret is statically allocated, do not free it. */
    r := C.GoString(ret)
    return &r, nil
}

/* GetSize: return the export size */
func (h *Libnbd) GetSize() (uint64, error) {
    if h.h == nil {
        return 0, closed_handle_error("get_size")
    }

    var c_err C.struct_error

    ret := C._nbd_get_size_wrapper(&c_err, h.h)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("get_size", c_err)
        C.free_error(&c_err)
        return 0, err
    }
    return uint64(ret), nil
}

/* GetBlockSize: return a specific server block size constraint */
func (h *Libnbd) GetBlockSize(size_type Size) (uint64, error) {
    if h.h == nil {
        return 0, closed_handle_error("get_block_size")
    }

    var c_err C.struct_error
    c_size_type := C.int(size_type)

    ret := C._nbd_get_block_size_wrapper(&c_err, h.h, c_size_type)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("get_block_size", c_err)
        C.free_error(&c_err)
        return 0, err
    }
    return uint64(ret), nil
}

/* Struct carrying optional arguments for Pread. */
type PreadOptargs struct {
    /* Flags field is ignored unless FlagsSet == true. */
    FlagsSet bool
    Flags    CmdFlag
}

/* Pread: read from the NBD server */
func (h *Libnbd) Pread(buf []byte, offset uint64, optargs *PreadOptargs) error {
    if h.h == nil {
        return closed_handle_error("pread")
    }

    var c_err C.struct_error
    c_buf := unsafe.Pointer(&buf[0])
    c_count := C.size_t(len(buf))
    c_offset := C.uint64_t(offset)
    var c_flags C.uint32_t
    if optargs != nil {
        if optargs.FlagsSet {
            c_flags = C.uint32_t(optargs.Flags)
        }
    }

    ret := C._nbd_pread_wrapper(&c_err, h.h, c_buf, c_count, c_offset, c_flags)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("pread", c_err)
        C.free_error(&c_err)
        return err
    }
    return nil
}

/* Struct carrying optional arguments for PreadStructured. */
type PreadStructuredOptargs struct {
    /* Flags field is ignored unless FlagsSet == true. */
    FlagsSet bool
    Flags    CmdFlag
}

/* PreadStructured: read from the NBD server */
func (h *Libnbd) PreadStructured(buf []byte, offset uint64, chunk ChunkCallback, optargs *PreadStructuredOptargs) error {
    if h.h == nil {
        return closed_handle_error("pread_structured")
    }

    var c_err C.struct_error
    c_buf := unsafe.Pointer(&buf[0])
    c_count := C.size_t(len(buf))
    c_offset := C.uint64_t(offset)
    var c_chunk C.nbd_chunk_callback
    c_chunk.callback = (*[0]byte)(C._nbd_chunk_callback_wrapper)
    c_chunk.free = (*[0]byte)(C._nbd_chunk_callback_free)
    chunk_cbid := registerCallbackId(chunk)
    c_chunk.user_data = C.alloc_cbid(C.long(chunk_cbid))
    var c_flags C.uint32_t
    if optargs != nil {
        if optargs.FlagsSet {
            c_flags = C.uint32_t(optargs.Flags)
        }
    }

    ret := C._nbd_pread_structured_wrapper(&c_err, h.h, c_buf, c_count, c_offset, c_chunk, c_flags)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("pread_structured", c_err)
        C.free_error(&c_err)
        return err
    }
    return nil
}

/* Struct carrying optional arguments for Pwrite. */
type PwriteOptargs struct {
    /* Flags field is ignored unless FlagsSet == true. */
    FlagsSet bool
    Flags    CmdFlag
}

/* Pwrite: write to the NBD server */
func (h *Libnbd) Pwrite(buf []byte, offset uint64, optargs *PwriteOptargs) error {
    if h.h == nil {
        return closed_handle_error("pwrite")
    }

    var c_err C.struct_error
    c_buf := unsafe.Pointer(&buf[0])
    c_count := C.size_t(len(buf))
    c_offset := C.uint64_t(offset)
    var c_flags C.uint32_t
    if optargs != nil {
        if optargs.FlagsSet {
            c_flags = C.uint32_t(optargs.Flags)
        }
    }

    ret := C._nbd_pwrite_wrapper(&c_err, h.h, c_buf, c_count, c_offset, c_flags)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("pwrite", c_err)
        C.free_error(&c_err)
        return err
    }
    return nil
}

/* Struct carrying optional arguments for Shutdown. */
type ShutdownOptargs struct {
    /* Flags field is ignored unless FlagsSet == true. */
    FlagsSet bool
    Flags    Shutdown
}

/* Shutdown: disconnect from the NBD server */
func (h *Libnbd) Shutdown(optargs *ShutdownOptargs) error {
    if h.h == nil {
        return closed_handle_error("shutdown")
    }

    var c_err C.struct_error
    var c_flags C.uint32_t
    if optargs != nil {
        if optargs.FlagsSet {
            c_flags = C.uint32_t(optargs.Flags)
        }
    }

    ret := C._nbd_shutdown_wrapper(&c_err, h.h, c_flags)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("shutdown", c_err)
        C.free_error(&c_err)
        return err
    }
    return nil
}

/* Struct carrying optional arguments for Flush. */
type FlushOptargs struct {
    /* Flags field is ignored unless FlagsSet == true. */
    FlagsSet bool
    Flags    CmdFlag
}

/* Flush: send flush command to the NBD server */
func (h *Libnbd) Flush(optargs *FlushOptargs) error {
    if h.h == nil {
        return closed_handle_error("flush")
    }

    var c_err C.struct_error
    var c_flags C.uint32_t
    if optargs != nil {
        if optargs.FlagsSet {
            c_flags = C.uint32_t(optargs.Flags)
        }
    }

    ret := C._nbd_flush_wrapper(&c_err, h.h, c_flags)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("flush", c_err)
        C.free_error(&c_err)
        return err
    }
    return nil
}

/* Struct carrying optional arguments for Trim. */
type TrimOptargs struct {
    /* Flags field is ignored unless FlagsSet == true. */
    FlagsSet bool
    Flags    CmdFlag
}

/* Trim: send trim command to the NBD server */
func (h *Libnbd) Trim(count uint64, offset uint64, optargs *TrimOptargs) error {
    if h.h == nil {
        return closed_handle_error("trim")
    }

    var c_err C.struct_error
    c_count := C.uint64_t(count)
    c_offset := C.uint64_t(offset)
    var c_flags C.uint32_t
    if optargs != nil {
        if optargs.FlagsSet {
            c_flags = C.uint32_t(optargs.Flags)
        }
    }

    ret := C._nbd_trim_wrapper(&c_err, h.h, c_count, c_offset, c_flags)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("trim", c_err)
        C.free_error(&c_err)
        return err
    }
    return nil
}

/* Struct carrying optional arguments for Cache. */
type CacheOptargs struct {
    /* Flags field is ignored unless FlagsSet == true. */
    FlagsSet bool
    Flags    CmdFlag
}

/* Cache: send cache (prefetch) command to the NBD server */
func (h *Libnbd) Cache(count uint64, offset uint64, optargs *CacheOptargs) error {
    if h.h == nil {
        return closed_handle_error("cache")
    }

    var c_err C.struct_error
    c_count := C.uint64_t(count)
    c_offset := C.uint64_t(offset)
    var c_flags C.uint32_t
    if optargs != nil {
        if optargs.FlagsSet {
            c_flags = C.uint32_t(optargs.Flags)
        }
    }

    ret := C._nbd_cache_wrapper(&c_err, h.h, c_count, c_offset, c_flags)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("cache", c_err)
        C.free_error(&c_err)
        return err
    }
    return nil
}

/* Struct carrying optional arguments for Zero. */
type ZeroOptargs struct {
    /* Flags field is ignored unless FlagsSet == true. */
    FlagsSet bool
    Flags    CmdFlag
}

/* Zero: send write zeroes command to the NBD server */
func (h *Libnbd) Zero(count uint64, offset uint64, optargs *ZeroOptargs) error {
    if h.h == nil {
        return closed_handle_error("zero")
    }

    var c_err C.struct_error
    c_count := C.uint64_t(count)
    c_offset := C.uint64_t(offset)
    var c_flags C.uint32_t
    if optargs != nil {
        if optargs.FlagsSet {
            c_flags = C.uint32_t(optargs.Flags)
        }
    }

    ret := C._nbd_zero_wrapper(&c_err, h.h, c_count, c_offset, c_flags)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("zero", c_err)
        C.free_error(&c_err)
        return err
    }
    return nil
}

/* Struct carrying optional arguments for BlockStatus. */
type BlockStatusOptargs struct {
    /* Flags field is ignored unless FlagsSet == true. */
    FlagsSet bool
    Flags    CmdFlag
}

/* BlockStatus: send block status command, with 32-bit callback */
func (h *Libnbd) BlockStatus(count uint64, offset uint64, extent ExtentCallback, optargs *BlockStatusOptargs) error {
    if h.h == nil {
        return closed_handle_error("block_status")
    }

    var c_err C.struct_error
    c_count := C.uint64_t(count)
    c_offset := C.uint64_t(offset)
    var c_extent C.nbd_extent_callback
    c_extent.callback = (*[0]byte)(C._nbd_extent_callback_wrapper)
    c_extent.free = (*[0]byte)(C._nbd_extent_callback_free)
    extent_cbid := registerCallbackId(extent)
    c_extent.user_data = C.alloc_cbid(C.long(extent_cbid))
    var c_flags C.uint32_t
    if optargs != nil {
        if optargs.FlagsSet {
            c_flags = C.uint32_t(optargs.Flags)
        }
    }

    ret := C._nbd_block_status_wrapper(&c_err, h.h, c_count, c_offset, c_extent, c_flags)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("block_status", c_err)
        C.free_error(&c_err)
        return err
    }
    return nil
}

/* Struct carrying optional arguments for BlockStatus64. */
type BlockStatus64Optargs struct {
    /* Flags field is ignored unless FlagsSet == true. */
    FlagsSet bool
    Flags    CmdFlag
}

/* BlockStatus64: send block status command, with 64-bit callback */
func (h *Libnbd) BlockStatus64(count uint64, offset uint64, extent64 Extent64Callback, optargs *BlockStatus64Optargs) error {
    if h.h == nil {
        return closed_handle_error("block_status_64")
    }

    var c_err C.struct_error
    c_count := C.uint64_t(count)
    c_offset := C.uint64_t(offset)
    var c_extent64 C.nbd_extent64_callback
    c_extent64.callback = (*[0]byte)(C._nbd_extent64_callback_wrapper)
    c_extent64.free = (*[0]byte)(C._nbd_extent64_callback_free)
    extent64_cbid := registerCallbackId(extent64)
    c_extent64.user_data = C.alloc_cbid(C.long(extent64_cbid))
    var c_flags C.uint32_t
    if optargs != nil {
        if optargs.FlagsSet {
            c_flags = C.uint32_t(optargs.Flags)
        }
    }

    ret := C._nbd_block_status_64_wrapper(&c_err, h.h, c_count, c_offset, c_extent64, c_flags)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("block_status_64", c_err)
        C.free_error(&c_err)
        return err
    }
    return nil
}

/* Struct carrying optional arguments for BlockStatusFilter. */
type BlockStatusFilterOptargs struct {
    /* Flags field is ignored unless FlagsSet == true. */
    FlagsSet bool
    Flags    CmdFlag
}

/* BlockStatusFilter: send filtered block status command, with 64-bit callback */
func (h *Libnbd) BlockStatusFilter(count uint64, offset uint64, contexts []string, extent64 Extent64Callback, optargs *BlockStatusFilterOptargs) error {
    if h.h == nil {
        return closed_handle_error("block_status_filter")
    }

    var c_err C.struct_error
    c_count := C.uint64_t(count)
    c_offset := C.uint64_t(offset)
    c_contexts := arg_string_list(contexts)
    defer free_string_list(c_contexts)
    var c_extent64 C.nbd_extent64_callback
    c_extent64.callback = (*[0]byte)(C._nbd_extent64_callback_wrapper)
    c_extent64.free = (*[0]byte)(C._nbd_extent64_callback_free)
    extent64_cbid := registerCallbackId(extent64)
    c_extent64.user_data = C.alloc_cbid(C.long(extent64_cbid))
    var c_flags C.uint32_t
    if optargs != nil {
        if optargs.FlagsSet {
            c_flags = C.uint32_t(optargs.Flags)
        }
    }

    ret := C._nbd_block_status_filter_wrapper(&c_err, h.h, c_count, c_offset, &c_contexts[0], c_extent64, c_flags)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("block_status_filter", c_err)
        C.free_error(&c_err)
        return err
    }
    return nil
}

/* Poll: poll the handle once */
func (h *Libnbd) Poll(timeout int) (uint, error) {
    if h.h == nil {
        return 0, closed_handle_error("poll")
    }

    var c_err C.struct_error
    c_timeout := C.int(timeout)

    ret := C._nbd_poll_wrapper(&c_err, h.h, c_timeout)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("poll", c_err)
        C.free_error(&c_err)
        return 0, err
    }
    return uint(ret), nil
}

/* Poll2: poll the handle once, with fd */
func (h *Libnbd) Poll2(fd int, timeout int) (uint, error) {
    if h.h == nil {
        return 0, closed_handle_error("poll2")
    }

    var c_err C.struct_error
    c_fd := C.int(fd)
    c_timeout := C.int(timeout)

    ret := C._nbd_poll2_wrapper(&c_err, h.h, c_fd, c_timeout)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("poll2", c_err)
        C.free_error(&c_err)
        return 0, err
    }
    return uint(ret), nil
}

/* AioConnect: connect to the NBD server */
func (h *Libnbd) AioConnect(addr string) error {
    if h.h == nil {
        return closed_handle_error("aio_connect")
    }

    var c_err C.struct_error
    panic("SockAddrAndLen not supported")
    var c_addr *C.struct_sockaddr
    var c_addrlen C.uint

    ret := C._nbd_aio_connect_wrapper(&c_err, h.h, c_addr, c_addrlen)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("aio_connect", c_err)
        C.free_error(&c_err)
        return err
    }
    return nil
}

/* AioConnectUri: connect to an NBD URI */
func (h *Libnbd) AioConnectUri(uri string) error {
    if h.h == nil {
        return closed_handle_error("aio_connect_uri")
    }

    var c_err C.struct_error
    c_uri := C.CString(uri)
    defer C.free(unsafe.Pointer(c_uri))

    ret := C._nbd_aio_connect_uri_wrapper(&c_err, h.h, c_uri)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("aio_connect_uri", c_err)
        C.free_error(&c_err)
        return err
    }
    return nil
}

/* AioConnectUnix: connect to the NBD server over a Unix domain socket */
func (h *Libnbd) AioConnectUnix(unixsocket string) error {
    if h.h == nil {
        return closed_handle_error("aio_connect_unix")
    }

    var c_err C.struct_error
    c_unixsocket := C.CString(unixsocket)
    defer C.free(unsafe.Pointer(c_unixsocket))

    ret := C._nbd_aio_connect_unix_wrapper(&c_err, h.h, c_unixsocket)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("aio_connect_unix", c_err)
        C.free_error(&c_err)
        return err
    }
    return nil
}

/* AioConnectVsock: connect to the NBD server over AF_VSOCK socket */
func (h *Libnbd) AioConnectVsock(cid uint32, port uint32) error {
    if h.h == nil {
        return closed_handle_error("aio_connect_vsock")
    }

    var c_err C.struct_error
    c_cid := C.uint32_t(cid)
    c_port := C.uint32_t(port)

    ret := C._nbd_aio_connect_vsock_wrapper(&c_err, h.h, c_cid, c_port)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("aio_connect_vsock", c_err)
        C.free_error(&c_err)
        return err
    }
    return nil
}

/* AioConnectTcp: connect to the NBD server over a TCP port */
func (h *Libnbd) AioConnectTcp(hostname string, port string) error {
    if h.h == nil {
        return closed_handle_error("aio_connect_tcp")
    }

    var c_err C.struct_error
    c_hostname := C.CString(hostname)
    defer C.free(unsafe.Pointer(c_hostname))
    c_port := C.CString(port)
    defer C.free(unsafe.Pointer(c_port))

    ret := C._nbd_aio_connect_tcp_wrapper(&c_err, h.h, c_hostname, c_port)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("aio_connect_tcp", c_err)
        C.free_error(&c_err)
        return err
    }
    return nil
}

/* AioConnectSocket: connect directly to a connected socket */
func (h *Libnbd) AioConnectSocket(sock int) error {
    if h.h == nil {
        return closed_handle_error("aio_connect_socket")
    }

    var c_err C.struct_error
    c_sock := C.int(sock)

    ret := C._nbd_aio_connect_socket_wrapper(&c_err, h.h, c_sock)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("aio_connect_socket", c_err)
        C.free_error(&c_err)
        return err
    }
    return nil
}

/* AioConnectCommand: connect to the NBD server */
func (h *Libnbd) AioConnectCommand(argv []string) error {
    if h.h == nil {
        return closed_handle_error("aio_connect_command")
    }

    var c_err C.struct_error
    c_argv := arg_string_list(argv)
    defer free_string_list(c_argv)

    ret := C._nbd_aio_connect_command_wrapper(&c_err, h.h, &c_argv[0])
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("aio_connect_command", c_err)
        C.free_error(&c_err)
        return err
    }
    return nil
}

/* AioConnectSystemdSocketActivation: connect using systemd socket activation */
func (h *Libnbd) AioConnectSystemdSocketActivation(argv []string) error {
    if h.h == nil {
        return closed_handle_error("aio_connect_systemd_socket_activation")
    }

    var c_err C.struct_error
    c_argv := arg_string_list(argv)
    defer free_string_list(c_argv)

    ret := C._nbd_aio_connect_systemd_socket_activation_wrapper(&c_err, h.h, &c_argv[0])
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("aio_connect_systemd_socket_activation", c_err)
        C.free_error(&c_err)
        return err
    }
    return nil
}

/* Struct carrying optional arguments for AioOptGo. */
type AioOptGoOptargs struct {
    /* CompletionCallback field is ignored unless CompletionCallbackSet == true. */
    CompletionCallbackSet bool
    CompletionCallback    CompletionCallback
}

/* AioOptGo: end negotiation and move on to using an export */
func (h *Libnbd) AioOptGo(optargs *AioOptGoOptargs) error {
    if h.h == nil {
        return closed_handle_error("aio_opt_go")
    }

    var c_err C.struct_error
    var c_completion C.nbd_completion_callback
    if optargs != nil {
        if optargs.CompletionCallbackSet {
            c_completion.callback = (*[0]byte)(C._nbd_completion_callback_wrapper)
            c_completion.free = (*[0]byte)(C._nbd_completion_callback_free)
            completion_cbid := registerCallbackId(optargs.CompletionCallback)
            c_completion.user_data = C.alloc_cbid(C.long(completion_cbid))
        }
    }

    ret := C._nbd_aio_opt_go_wrapper(&c_err, h.h, c_completion)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("aio_opt_go", c_err)
        C.free_error(&c_err)
        return err
    }
    return nil
}

/* AioOptAbort: end negotiation and close the connection */
func (h *Libnbd) AioOptAbort() error {
    if h.h == nil {
        return closed_handle_error("aio_opt_abort")
    }

    var c_err C.struct_error

    ret := C._nbd_aio_opt_abort_wrapper(&c_err, h.h)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("aio_opt_abort", c_err)
        C.free_error(&c_err)
        return err
    }
    return nil
}

/* Struct carrying optional arguments for AioOptStarttls. */
type AioOptStarttlsOptargs struct {
    /* CompletionCallback field is ignored unless CompletionCallbackSet == true. */
    CompletionCallbackSet bool
    CompletionCallback    CompletionCallback
}

/* AioOptStarttls: request the server to initiate TLS */
func (h *Libnbd) AioOptStarttls(optargs *AioOptStarttlsOptargs) error {
    if h.h == nil {
        return closed_handle_error("aio_opt_starttls")
    }

    var c_err C.struct_error
    var c_completion C.nbd_completion_callback
    if optargs != nil {
        if optargs.CompletionCallbackSet {
            c_completion.callback = (*[0]byte)(C._nbd_completion_callback_wrapper)
            c_completion.free = (*[0]byte)(C._nbd_completion_callback_free)
            completion_cbid := registerCallbackId(optargs.CompletionCallback)
            c_completion.user_data = C.alloc_cbid(C.long(completion_cbid))
        }
    }

    ret := C._nbd_aio_opt_starttls_wrapper(&c_err, h.h, c_completion)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("aio_opt_starttls", c_err)
        C.free_error(&c_err)
        return err
    }
    return nil
}

/* Struct carrying optional arguments for AioOptExtendedHeaders. */
type AioOptExtendedHeadersOptargs struct {
    /* CompletionCallback field is ignored unless CompletionCallbackSet == true. */
    CompletionCallbackSet bool
    CompletionCallback    CompletionCallback
}

/* AioOptExtendedHeaders: request the server to enable extended headers */
func (h *Libnbd) AioOptExtendedHeaders(optargs *AioOptExtendedHeadersOptargs) error {
    if h.h == nil {
        return closed_handle_error("aio_opt_extended_headers")
    }

    var c_err C.struct_error
    var c_completion C.nbd_completion_callback
    if optargs != nil {
        if optargs.CompletionCallbackSet {
            c_completion.callback = (*[0]byte)(C._nbd_completion_callback_wrapper)
            c_completion.free = (*[0]byte)(C._nbd_completion_callback_free)
            completion_cbid := registerCallbackId(optargs.CompletionCallback)
            c_completion.user_data = C.alloc_cbid(C.long(completion_cbid))
        }
    }

    ret := C._nbd_aio_opt_extended_headers_wrapper(&c_err, h.h, c_completion)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("aio_opt_extended_headers", c_err)
        C.free_error(&c_err)
        return err
    }
    return nil
}

/* Struct carrying optional arguments for AioOptStructuredReply. */
type AioOptStructuredReplyOptargs struct {
    /* CompletionCallback field is ignored unless CompletionCallbackSet == true. */
    CompletionCallbackSet bool
    CompletionCallback    CompletionCallback
}

/* AioOptStructuredReply: request the server to enable structured replies */
func (h *Libnbd) AioOptStructuredReply(optargs *AioOptStructuredReplyOptargs) error {
    if h.h == nil {
        return closed_handle_error("aio_opt_structured_reply")
    }

    var c_err C.struct_error
    var c_completion C.nbd_completion_callback
    if optargs != nil {
        if optargs.CompletionCallbackSet {
            c_completion.callback = (*[0]byte)(C._nbd_completion_callback_wrapper)
            c_completion.free = (*[0]byte)(C._nbd_completion_callback_free)
            completion_cbid := registerCallbackId(optargs.CompletionCallback)
            c_completion.user_data = C.alloc_cbid(C.long(completion_cbid))
        }
    }

    ret := C._nbd_aio_opt_structured_reply_wrapper(&c_err, h.h, c_completion)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("aio_opt_structured_reply", c_err)
        C.free_error(&c_err)
        return err
    }
    return nil
}

/* Struct carrying optional arguments for AioOptList. */
type AioOptListOptargs struct {
    /* CompletionCallback field is ignored unless CompletionCallbackSet == true. */
    CompletionCallbackSet bool
    CompletionCallback    CompletionCallback
}

/* AioOptList: request the server to list all exports during negotiation */
func (h *Libnbd) AioOptList(list ListCallback, optargs *AioOptListOptargs) error {
    if h.h == nil {
        return closed_handle_error("aio_opt_list")
    }

    var c_err C.struct_error
    var c_list C.nbd_list_callback
    c_list.callback = (*[0]byte)(C._nbd_list_callback_wrapper)
    c_list.free = (*[0]byte)(C._nbd_list_callback_free)
    list_cbid := registerCallbackId(list)
    c_list.user_data = C.alloc_cbid(C.long(list_cbid))
    var c_completion C.nbd_completion_callback
    if optargs != nil {
        if optargs.CompletionCallbackSet {
            c_completion.callback = (*[0]byte)(C._nbd_completion_callback_wrapper)
            c_completion.free = (*[0]byte)(C._nbd_completion_callback_free)
            completion_cbid := registerCallbackId(optargs.CompletionCallback)
            c_completion.user_data = C.alloc_cbid(C.long(completion_cbid))
        }
    }

    ret := C._nbd_aio_opt_list_wrapper(&c_err, h.h, c_list, c_completion)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("aio_opt_list", c_err)
        C.free_error(&c_err)
        return err
    }
    return nil
}

/* Struct carrying optional arguments for AioOptInfo. */
type AioOptInfoOptargs struct {
    /* CompletionCallback field is ignored unless CompletionCallbackSet == true. */
    CompletionCallbackSet bool
    CompletionCallback    CompletionCallback
}

/* AioOptInfo: request the server for information about an export */
func (h *Libnbd) AioOptInfo(optargs *AioOptInfoOptargs) error {
    if h.h == nil {
        return closed_handle_error("aio_opt_info")
    }

    var c_err C.struct_error
    var c_completion C.nbd_completion_callback
    if optargs != nil {
        if optargs.CompletionCallbackSet {
            c_completion.callback = (*[0]byte)(C._nbd_completion_callback_wrapper)
            c_completion.free = (*[0]byte)(C._nbd_completion_callback_free)
            completion_cbid := registerCallbackId(optargs.CompletionCallback)
            c_completion.user_data = C.alloc_cbid(C.long(completion_cbid))
        }
    }

    ret := C._nbd_aio_opt_info_wrapper(&c_err, h.h, c_completion)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("aio_opt_info", c_err)
        C.free_error(&c_err)
        return err
    }
    return nil
}

/* Struct carrying optional arguments for AioOptListMetaContext. */
type AioOptListMetaContextOptargs struct {
    /* CompletionCallback field is ignored unless CompletionCallbackSet == true. */
    CompletionCallbackSet bool
    CompletionCallback    CompletionCallback
}

/* AioOptListMetaContext: request list of available meta contexts, using implicit query */
func (h *Libnbd) AioOptListMetaContext(context ContextCallback, optargs *AioOptListMetaContextOptargs) (uint, error) {
    if h.h == nil {
        return 0, closed_handle_error("aio_opt_list_meta_context")
    }

    var c_err C.struct_error
    var c_context C.nbd_context_callback
    c_context.callback = (*[0]byte)(C._nbd_context_callback_wrapper)
    c_context.free = (*[0]byte)(C._nbd_context_callback_free)
    context_cbid := registerCallbackId(context)
    c_context.user_data = C.alloc_cbid(C.long(context_cbid))
    var c_completion C.nbd_completion_callback
    if optargs != nil {
        if optargs.CompletionCallbackSet {
            c_completion.callback = (*[0]byte)(C._nbd_completion_callback_wrapper)
            c_completion.free = (*[0]byte)(C._nbd_completion_callback_free)
            completion_cbid := registerCallbackId(optargs.CompletionCallback)
            c_completion.user_data = C.alloc_cbid(C.long(completion_cbid))
        }
    }

    ret := C._nbd_aio_opt_list_meta_context_wrapper(&c_err, h.h, c_context, c_completion)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("aio_opt_list_meta_context", c_err)
        C.free_error(&c_err)
        return 0, err
    }
    return uint(ret), nil
}

/* Struct carrying optional arguments for AioOptListMetaContextQueries. */
type AioOptListMetaContextQueriesOptargs struct {
    /* CompletionCallback field is ignored unless CompletionCallbackSet == true. */
    CompletionCallbackSet bool
    CompletionCallback    CompletionCallback
}

/* AioOptListMetaContextQueries: request list of available meta contexts, using explicit query */
func (h *Libnbd) AioOptListMetaContextQueries(queries []string, context ContextCallback, optargs *AioOptListMetaContextQueriesOptargs) (uint, error) {
    if h.h == nil {
        return 0, closed_handle_error("aio_opt_list_meta_context_queries")
    }

    var c_err C.struct_error
    c_queries := arg_string_list(queries)
    defer free_string_list(c_queries)
    var c_context C.nbd_context_callback
    c_context.callback = (*[0]byte)(C._nbd_context_callback_wrapper)
    c_context.free = (*[0]byte)(C._nbd_context_callback_free)
    context_cbid := registerCallbackId(context)
    c_context.user_data = C.alloc_cbid(C.long(context_cbid))
    var c_completion C.nbd_completion_callback
    if optargs != nil {
        if optargs.CompletionCallbackSet {
            c_completion.callback = (*[0]byte)(C._nbd_completion_callback_wrapper)
            c_completion.free = (*[0]byte)(C._nbd_completion_callback_free)
            completion_cbid := registerCallbackId(optargs.CompletionCallback)
            c_completion.user_data = C.alloc_cbid(C.long(completion_cbid))
        }
    }

    ret := C._nbd_aio_opt_list_meta_context_queries_wrapper(&c_err, h.h, &c_queries[0], c_context, c_completion)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("aio_opt_list_meta_context_queries", c_err)
        C.free_error(&c_err)
        return 0, err
    }
    return uint(ret), nil
}

/* Struct carrying optional arguments for AioOptSetMetaContext. */
type AioOptSetMetaContextOptargs struct {
    /* CompletionCallback field is ignored unless CompletionCallbackSet == true. */
    CompletionCallbackSet bool
    CompletionCallback    CompletionCallback
}

/* AioOptSetMetaContext: select specific meta contexts, with implicit query list */
func (h *Libnbd) AioOptSetMetaContext(context ContextCallback, optargs *AioOptSetMetaContextOptargs) (uint, error) {
    if h.h == nil {
        return 0, closed_handle_error("aio_opt_set_meta_context")
    }

    var c_err C.struct_error
    var c_context C.nbd_context_callback
    c_context.callback = (*[0]byte)(C._nbd_context_callback_wrapper)
    c_context.free = (*[0]byte)(C._nbd_context_callback_free)
    context_cbid := registerCallbackId(context)
    c_context.user_data = C.alloc_cbid(C.long(context_cbid))
    var c_completion C.nbd_completion_callback
    if optargs != nil {
        if optargs.CompletionCallbackSet {
            c_completion.callback = (*[0]byte)(C._nbd_completion_callback_wrapper)
            c_completion.free = (*[0]byte)(C._nbd_completion_callback_free)
            completion_cbid := registerCallbackId(optargs.CompletionCallback)
            c_completion.user_data = C.alloc_cbid(C.long(completion_cbid))
        }
    }

    ret := C._nbd_aio_opt_set_meta_context_wrapper(&c_err, h.h, c_context, c_completion)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("aio_opt_set_meta_context", c_err)
        C.free_error(&c_err)
        return 0, err
    }
    return uint(ret), nil
}

/* Struct carrying optional arguments for AioOptSetMetaContextQueries. */
type AioOptSetMetaContextQueriesOptargs struct {
    /* CompletionCallback field is ignored unless CompletionCallbackSet == true. */
    CompletionCallbackSet bool
    CompletionCallback    CompletionCallback
}

/* AioOptSetMetaContextQueries: select specific meta contexts, with explicit query list */
func (h *Libnbd) AioOptSetMetaContextQueries(queries []string, context ContextCallback, optargs *AioOptSetMetaContextQueriesOptargs) (uint, error) {
    if h.h == nil {
        return 0, closed_handle_error("aio_opt_set_meta_context_queries")
    }

    var c_err C.struct_error
    c_queries := arg_string_list(queries)
    defer free_string_list(c_queries)
    var c_context C.nbd_context_callback
    c_context.callback = (*[0]byte)(C._nbd_context_callback_wrapper)
    c_context.free = (*[0]byte)(C._nbd_context_callback_free)
    context_cbid := registerCallbackId(context)
    c_context.user_data = C.alloc_cbid(C.long(context_cbid))
    var c_completion C.nbd_completion_callback
    if optargs != nil {
        if optargs.CompletionCallbackSet {
            c_completion.callback = (*[0]byte)(C._nbd_completion_callback_wrapper)
            c_completion.free = (*[0]byte)(C._nbd_completion_callback_free)
            completion_cbid := registerCallbackId(optargs.CompletionCallback)
            c_completion.user_data = C.alloc_cbid(C.long(completion_cbid))
        }
    }

    ret := C._nbd_aio_opt_set_meta_context_queries_wrapper(&c_err, h.h, &c_queries[0], c_context, c_completion)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("aio_opt_set_meta_context_queries", c_err)
        C.free_error(&c_err)
        return 0, err
    }
    return uint(ret), nil
}

/* Struct carrying optional arguments for AioPread. */
type AioPreadOptargs struct {
    /* CompletionCallback field is ignored unless CompletionCallbackSet == true. */
    CompletionCallbackSet bool
    CompletionCallback    CompletionCallback
    /* Flags field is ignored unless FlagsSet == true. */
    FlagsSet bool
    Flags    CmdFlag
}

/* AioPread: read from the NBD server */
func (h *Libnbd) AioPread(buf AioBuffer, offset uint64, optargs *AioPreadOptargs) (uint64, error) {
    if h.h == nil {
        return 0, closed_handle_error("aio_pread")
    }

    var c_err C.struct_error
    c_buf := buf.P
    c_count := C.size_t(buf.Size)
    c_offset := C.uint64_t(offset)
    var c_completion C.nbd_completion_callback
    var c_flags C.uint32_t
    if optargs != nil {
        if optargs.CompletionCallbackSet {
            c_completion.callback = (*[0]byte)(C._nbd_completion_callback_wrapper)
            c_completion.free = (*[0]byte)(C._nbd_completion_callback_free)
            completion_cbid := registerCallbackId(optargs.CompletionCallback)
            c_completion.user_data = C.alloc_cbid(C.long(completion_cbid))
        }
        if optargs.FlagsSet {
            c_flags = C.uint32_t(optargs.Flags)
        }
    }

    ret := C._nbd_aio_pread_wrapper(&c_err, h.h, c_buf, c_count, c_offset, c_completion, c_flags)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("aio_pread", c_err)
        C.free_error(&c_err)
        return 0, err
    }
    return uint64(ret), nil
}

/* Struct carrying optional arguments for AioPreadStructured. */
type AioPreadStructuredOptargs struct {
    /* CompletionCallback field is ignored unless CompletionCallbackSet == true. */
    CompletionCallbackSet bool
    CompletionCallback    CompletionCallback
    /* Flags field is ignored unless FlagsSet == true. */
    FlagsSet bool
    Flags    CmdFlag
}

/* AioPreadStructured: read from the NBD server */
func (h *Libnbd) AioPreadStructured(buf AioBuffer, offset uint64, chunk ChunkCallback, optargs *AioPreadStructuredOptargs) (uint64, error) {
    if h.h == nil {
        return 0, closed_handle_error("aio_pread_structured")
    }

    var c_err C.struct_error
    c_buf := buf.P
    c_count := C.size_t(buf.Size)
    c_offset := C.uint64_t(offset)
    var c_chunk C.nbd_chunk_callback
    c_chunk.callback = (*[0]byte)(C._nbd_chunk_callback_wrapper)
    c_chunk.free = (*[0]byte)(C._nbd_chunk_callback_free)
    chunk_cbid := registerCallbackId(chunk)
    c_chunk.user_data = C.alloc_cbid(C.long(chunk_cbid))
    var c_completion C.nbd_completion_callback
    var c_flags C.uint32_t
    if optargs != nil {
        if optargs.CompletionCallbackSet {
            c_completion.callback = (*[0]byte)(C._nbd_completion_callback_wrapper)
            c_completion.free = (*[0]byte)(C._nbd_completion_callback_free)
            completion_cbid := registerCallbackId(optargs.CompletionCallback)
            c_completion.user_data = C.alloc_cbid(C.long(completion_cbid))
        }
        if optargs.FlagsSet {
            c_flags = C.uint32_t(optargs.Flags)
        }
    }

    ret := C._nbd_aio_pread_structured_wrapper(&c_err, h.h, c_buf, c_count, c_offset, c_chunk, c_completion, c_flags)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("aio_pread_structured", c_err)
        C.free_error(&c_err)
        return 0, err
    }
    return uint64(ret), nil
}

/* Struct carrying optional arguments for AioPwrite. */
type AioPwriteOptargs struct {
    /* CompletionCallback field is ignored unless CompletionCallbackSet == true. */
    CompletionCallbackSet bool
    CompletionCallback    CompletionCallback
    /* Flags field is ignored unless FlagsSet == true. */
    FlagsSet bool
    Flags    CmdFlag
}

/* AioPwrite: write to the NBD server */
func (h *Libnbd) AioPwrite(buf AioBuffer, offset uint64, optargs *AioPwriteOptargs) (uint64, error) {
    if h.h == nil {
        return 0, closed_handle_error("aio_pwrite")
    }

    var c_err C.struct_error
    c_buf := buf.P
    c_count := C.size_t(buf.Size)
    c_offset := C.uint64_t(offset)
    var c_completion C.nbd_completion_callback
    var c_flags C.uint32_t
    if optargs != nil {
        if optargs.CompletionCallbackSet {
            c_completion.callback = (*[0]byte)(C._nbd_completion_callback_wrapper)
            c_completion.free = (*[0]byte)(C._nbd_completion_callback_free)
            completion_cbid := registerCallbackId(optargs.CompletionCallback)
            c_completion.user_data = C.alloc_cbid(C.long(completion_cbid))
        }
        if optargs.FlagsSet {
            c_flags = C.uint32_t(optargs.Flags)
        }
    }

    ret := C._nbd_aio_pwrite_wrapper(&c_err, h.h, c_buf, c_count, c_offset, c_completion, c_flags)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("aio_pwrite", c_err)
        C.free_error(&c_err)
        return 0, err
    }
    return uint64(ret), nil
}

/* Struct carrying optional arguments for AioDisconnect. */
type AioDisconnectOptargs struct {
    /* Flags field is ignored unless FlagsSet == true. */
    FlagsSet bool
    Flags    CmdFlag
}

/* AioDisconnect: disconnect from the NBD server */
func (h *Libnbd) AioDisconnect(optargs *AioDisconnectOptargs) error {
    if h.h == nil {
        return closed_handle_error("aio_disconnect")
    }

    var c_err C.struct_error
    var c_flags C.uint32_t
    if optargs != nil {
        if optargs.FlagsSet {
            c_flags = C.uint32_t(optargs.Flags)
        }
    }

    ret := C._nbd_aio_disconnect_wrapper(&c_err, h.h, c_flags)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("aio_disconnect", c_err)
        C.free_error(&c_err)
        return err
    }
    return nil
}

/* Struct carrying optional arguments for AioFlush. */
type AioFlushOptargs struct {
    /* CompletionCallback field is ignored unless CompletionCallbackSet == true. */
    CompletionCallbackSet bool
    CompletionCallback    CompletionCallback
    /* Flags field is ignored unless FlagsSet == true. */
    FlagsSet bool
    Flags    CmdFlag
}

/* AioFlush: send flush command to the NBD server */
func (h *Libnbd) AioFlush(optargs *AioFlushOptargs) (uint64, error) {
    if h.h == nil {
        return 0, closed_handle_error("aio_flush")
    }

    var c_err C.struct_error
    var c_completion C.nbd_completion_callback
    var c_flags C.uint32_t
    if optargs != nil {
        if optargs.CompletionCallbackSet {
            c_completion.callback = (*[0]byte)(C._nbd_completion_callback_wrapper)
            c_completion.free = (*[0]byte)(C._nbd_completion_callback_free)
            completion_cbid := registerCallbackId(optargs.CompletionCallback)
            c_completion.user_data = C.alloc_cbid(C.long(completion_cbid))
        }
        if optargs.FlagsSet {
            c_flags = C.uint32_t(optargs.Flags)
        }
    }

    ret := C._nbd_aio_flush_wrapper(&c_err, h.h, c_completion, c_flags)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("aio_flush", c_err)
        C.free_error(&c_err)
        return 0, err
    }
    return uint64(ret), nil
}

/* Struct carrying optional arguments for AioTrim. */
type AioTrimOptargs struct {
    /* CompletionCallback field is ignored unless CompletionCallbackSet == true. */
    CompletionCallbackSet bool
    CompletionCallback    CompletionCallback
    /* Flags field is ignored unless FlagsSet == true. */
    FlagsSet bool
    Flags    CmdFlag
}

/* AioTrim: send trim command to the NBD server */
func (h *Libnbd) AioTrim(count uint64, offset uint64, optargs *AioTrimOptargs) (uint64, error) {
    if h.h == nil {
        return 0, closed_handle_error("aio_trim")
    }

    var c_err C.struct_error
    c_count := C.uint64_t(count)
    c_offset := C.uint64_t(offset)
    var c_completion C.nbd_completion_callback
    var c_flags C.uint32_t
    if optargs != nil {
        if optargs.CompletionCallbackSet {
            c_completion.callback = (*[0]byte)(C._nbd_completion_callback_wrapper)
            c_completion.free = (*[0]byte)(C._nbd_completion_callback_free)
            completion_cbid := registerCallbackId(optargs.CompletionCallback)
            c_completion.user_data = C.alloc_cbid(C.long(completion_cbid))
        }
        if optargs.FlagsSet {
            c_flags = C.uint32_t(optargs.Flags)
        }
    }

    ret := C._nbd_aio_trim_wrapper(&c_err, h.h, c_count, c_offset, c_completion, c_flags)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("aio_trim", c_err)
        C.free_error(&c_err)
        return 0, err
    }
    return uint64(ret), nil
}

/* Struct carrying optional arguments for AioCache. */
type AioCacheOptargs struct {
    /* CompletionCallback field is ignored unless CompletionCallbackSet == true. */
    CompletionCallbackSet bool
    CompletionCallback    CompletionCallback
    /* Flags field is ignored unless FlagsSet == true. */
    FlagsSet bool
    Flags    CmdFlag
}

/* AioCache: send cache (prefetch) command to the NBD server */
func (h *Libnbd) AioCache(count uint64, offset uint64, optargs *AioCacheOptargs) (uint64, error) {
    if h.h == nil {
        return 0, closed_handle_error("aio_cache")
    }

    var c_err C.struct_error
    c_count := C.uint64_t(count)
    c_offset := C.uint64_t(offset)
    var c_completion C.nbd_completion_callback
    var c_flags C.uint32_t
    if optargs != nil {
        if optargs.CompletionCallbackSet {
            c_completion.callback = (*[0]byte)(C._nbd_completion_callback_wrapper)
            c_completion.free = (*[0]byte)(C._nbd_completion_callback_free)
            completion_cbid := registerCallbackId(optargs.CompletionCallback)
            c_completion.user_data = C.alloc_cbid(C.long(completion_cbid))
        }
        if optargs.FlagsSet {
            c_flags = C.uint32_t(optargs.Flags)
        }
    }

    ret := C._nbd_aio_cache_wrapper(&c_err, h.h, c_count, c_offset, c_completion, c_flags)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("aio_cache", c_err)
        C.free_error(&c_err)
        return 0, err
    }
    return uint64(ret), nil
}

/* Struct carrying optional arguments for AioZero. */
type AioZeroOptargs struct {
    /* CompletionCallback field is ignored unless CompletionCallbackSet == true. */
    CompletionCallbackSet bool
    CompletionCallback    CompletionCallback
    /* Flags field is ignored unless FlagsSet == true. */
    FlagsSet bool
    Flags    CmdFlag
}

/* AioZero: send write zeroes command to the NBD server */
func (h *Libnbd) AioZero(count uint64, offset uint64, optargs *AioZeroOptargs) (uint64, error) {
    if h.h == nil {
        return 0, closed_handle_error("aio_zero")
    }

    var c_err C.struct_error
    c_count := C.uint64_t(count)
    c_offset := C.uint64_t(offset)
    var c_completion C.nbd_completion_callback
    var c_flags C.uint32_t
    if optargs != nil {
        if optargs.CompletionCallbackSet {
            c_completion.callback = (*[0]byte)(C._nbd_completion_callback_wrapper)
            c_completion.free = (*[0]byte)(C._nbd_completion_callback_free)
            completion_cbid := registerCallbackId(optargs.CompletionCallback)
            c_completion.user_data = C.alloc_cbid(C.long(completion_cbid))
        }
        if optargs.FlagsSet {
            c_flags = C.uint32_t(optargs.Flags)
        }
    }

    ret := C._nbd_aio_zero_wrapper(&c_err, h.h, c_count, c_offset, c_completion, c_flags)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("aio_zero", c_err)
        C.free_error(&c_err)
        return 0, err
    }
    return uint64(ret), nil
}

/* Struct carrying optional arguments for AioBlockStatus. */
type AioBlockStatusOptargs struct {
    /* CompletionCallback field is ignored unless CompletionCallbackSet == true. */
    CompletionCallbackSet bool
    CompletionCallback    CompletionCallback
    /* Flags field is ignored unless FlagsSet == true. */
    FlagsSet bool
    Flags    CmdFlag
}

/* AioBlockStatus: send block status command, with 32-bit callback */
func (h *Libnbd) AioBlockStatus(count uint64, offset uint64, extent ExtentCallback, optargs *AioBlockStatusOptargs) (uint64, error) {
    if h.h == nil {
        return 0, closed_handle_error("aio_block_status")
    }

    var c_err C.struct_error
    c_count := C.uint64_t(count)
    c_offset := C.uint64_t(offset)
    var c_extent C.nbd_extent_callback
    c_extent.callback = (*[0]byte)(C._nbd_extent_callback_wrapper)
    c_extent.free = (*[0]byte)(C._nbd_extent_callback_free)
    extent_cbid := registerCallbackId(extent)
    c_extent.user_data = C.alloc_cbid(C.long(extent_cbid))
    var c_completion C.nbd_completion_callback
    var c_flags C.uint32_t
    if optargs != nil {
        if optargs.CompletionCallbackSet {
            c_completion.callback = (*[0]byte)(C._nbd_completion_callback_wrapper)
            c_completion.free = (*[0]byte)(C._nbd_completion_callback_free)
            completion_cbid := registerCallbackId(optargs.CompletionCallback)
            c_completion.user_data = C.alloc_cbid(C.long(completion_cbid))
        }
        if optargs.FlagsSet {
            c_flags = C.uint32_t(optargs.Flags)
        }
    }

    ret := C._nbd_aio_block_status_wrapper(&c_err, h.h, c_count, c_offset, c_extent, c_completion, c_flags)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("aio_block_status", c_err)
        C.free_error(&c_err)
        return 0, err
    }
    return uint64(ret), nil
}

/* Struct carrying optional arguments for AioBlockStatus64. */
type AioBlockStatus64Optargs struct {
    /* CompletionCallback field is ignored unless CompletionCallbackSet == true. */
    CompletionCallbackSet bool
    CompletionCallback    CompletionCallback
    /* Flags field is ignored unless FlagsSet == true. */
    FlagsSet bool
    Flags    CmdFlag
}

/* AioBlockStatus64: send block status command, with 64-bit callback */
func (h *Libnbd) AioBlockStatus64(count uint64, offset uint64, extent64 Extent64Callback, optargs *AioBlockStatus64Optargs) (uint64, error) {
    if h.h == nil {
        return 0, closed_handle_error("aio_block_status_64")
    }

    var c_err C.struct_error
    c_count := C.uint64_t(count)
    c_offset := C.uint64_t(offset)
    var c_extent64 C.nbd_extent64_callback
    c_extent64.callback = (*[0]byte)(C._nbd_extent64_callback_wrapper)
    c_extent64.free = (*[0]byte)(C._nbd_extent64_callback_free)
    extent64_cbid := registerCallbackId(extent64)
    c_extent64.user_data = C.alloc_cbid(C.long(extent64_cbid))
    var c_completion C.nbd_completion_callback
    var c_flags C.uint32_t
    if optargs != nil {
        if optargs.CompletionCallbackSet {
            c_completion.callback = (*[0]byte)(C._nbd_completion_callback_wrapper)
            c_completion.free = (*[0]byte)(C._nbd_completion_callback_free)
            completion_cbid := registerCallbackId(optargs.CompletionCallback)
            c_completion.user_data = C.alloc_cbid(C.long(completion_cbid))
        }
        if optargs.FlagsSet {
            c_flags = C.uint32_t(optargs.Flags)
        }
    }

    ret := C._nbd_aio_block_status_64_wrapper(&c_err, h.h, c_count, c_offset, c_extent64, c_completion, c_flags)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("aio_block_status_64", c_err)
        C.free_error(&c_err)
        return 0, err
    }
    return uint64(ret), nil
}

/* Struct carrying optional arguments for AioBlockStatusFilter. */
type AioBlockStatusFilterOptargs struct {
    /* CompletionCallback field is ignored unless CompletionCallbackSet == true. */
    CompletionCallbackSet bool
    CompletionCallback    CompletionCallback
    /* Flags field is ignored unless FlagsSet == true. */
    FlagsSet bool
    Flags    CmdFlag
}

/* AioBlockStatusFilter: send filtered block status command to the NBD server */
func (h *Libnbd) AioBlockStatusFilter(count uint64, offset uint64, contexts []string, extent64 Extent64Callback, optargs *AioBlockStatusFilterOptargs) (uint64, error) {
    if h.h == nil {
        return 0, closed_handle_error("aio_block_status_filter")
    }

    var c_err C.struct_error
    c_count := C.uint64_t(count)
    c_offset := C.uint64_t(offset)
    c_contexts := arg_string_list(contexts)
    defer free_string_list(c_contexts)
    var c_extent64 C.nbd_extent64_callback
    c_extent64.callback = (*[0]byte)(C._nbd_extent64_callback_wrapper)
    c_extent64.free = (*[0]byte)(C._nbd_extent64_callback_free)
    extent64_cbid := registerCallbackId(extent64)
    c_extent64.user_data = C.alloc_cbid(C.long(extent64_cbid))
    var c_completion C.nbd_completion_callback
    var c_flags C.uint32_t
    if optargs != nil {
        if optargs.CompletionCallbackSet {
            c_completion.callback = (*[0]byte)(C._nbd_completion_callback_wrapper)
            c_completion.free = (*[0]byte)(C._nbd_completion_callback_free)
            completion_cbid := registerCallbackId(optargs.CompletionCallback)
            c_completion.user_data = C.alloc_cbid(C.long(completion_cbid))
        }
        if optargs.FlagsSet {
            c_flags = C.uint32_t(optargs.Flags)
        }
    }

    ret := C._nbd_aio_block_status_filter_wrapper(&c_err, h.h, c_count, c_offset, &c_contexts[0], c_extent64, c_completion, c_flags)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("aio_block_status_filter", c_err)
        C.free_error(&c_err)
        return 0, err
    }
    return uint64(ret), nil
}

/* AioGetFd: return file descriptor associated with this connection */
func (h *Libnbd) AioGetFd() (int, error) {
    if h.h == nil {
        return 0, closed_handle_error("aio_get_fd")
    }

    var c_err C.struct_error

    ret := C._nbd_aio_get_fd_wrapper(&c_err, h.h)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("aio_get_fd", c_err)
        C.free_error(&c_err)
        return 0, err
    }
    return int(ret), nil
}

/* AioGetDirection: return the read or write direction */
func (h *Libnbd) AioGetDirection() (uint, error) {
    if h.h == nil {
        return 0, closed_handle_error("aio_get_direction")
    }

    var c_err C.struct_error

    ret := C._nbd_aio_get_direction_wrapper(&c_err, h.h)
    runtime.KeepAlive(h.h)
    return uint(ret), nil
}

/* AioNotifyRead: notify that the connection is readable */
func (h *Libnbd) AioNotifyRead() error {
    if h.h == nil {
        return closed_handle_error("aio_notify_read")
    }

    var c_err C.struct_error

    ret := C._nbd_aio_notify_read_wrapper(&c_err, h.h)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("aio_notify_read", c_err)
        C.free_error(&c_err)
        return err
    }
    return nil
}

/* AioNotifyWrite: notify that the connection is writable */
func (h *Libnbd) AioNotifyWrite() error {
    if h.h == nil {
        return closed_handle_error("aio_notify_write")
    }

    var c_err C.struct_error

    ret := C._nbd_aio_notify_write_wrapper(&c_err, h.h)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("aio_notify_write", c_err)
        C.free_error(&c_err)
        return err
    }
    return nil
}

/* AioIsCreated: check if the connection has just been created */
func (h *Libnbd) AioIsCreated() (bool, error) {
    if h.h == nil {
        return false, closed_handle_error("aio_is_created")
    }

    var c_err C.struct_error

    ret := C._nbd_aio_is_created_wrapper(&c_err, h.h)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("aio_is_created", c_err)
        C.free_error(&c_err)
        return false, err
    }
    return int(ret) != 0, nil
}

/* AioIsConnecting: check if the connection is connecting or handshaking */
func (h *Libnbd) AioIsConnecting() (bool, error) {
    if h.h == nil {
        return false, closed_handle_error("aio_is_connecting")
    }

    var c_err C.struct_error

    ret := C._nbd_aio_is_connecting_wrapper(&c_err, h.h)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("aio_is_connecting", c_err)
        C.free_error(&c_err)
        return false, err
    }
    return int(ret) != 0, nil
}

/* AioIsNegotiating: check if connection is ready to send handshake option */
func (h *Libnbd) AioIsNegotiating() (bool, error) {
    if h.h == nil {
        return false, closed_handle_error("aio_is_negotiating")
    }

    var c_err C.struct_error

    ret := C._nbd_aio_is_negotiating_wrapper(&c_err, h.h)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("aio_is_negotiating", c_err)
        C.free_error(&c_err)
        return false, err
    }
    return int(ret) != 0, nil
}

/* AioIsReady: check if the connection is in the ready state */
func (h *Libnbd) AioIsReady() (bool, error) {
    if h.h == nil {
        return false, closed_handle_error("aio_is_ready")
    }

    var c_err C.struct_error

    ret := C._nbd_aio_is_ready_wrapper(&c_err, h.h)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("aio_is_ready", c_err)
        C.free_error(&c_err)
        return false, err
    }
    return int(ret) != 0, nil
}

/* AioIsProcessing: check if the connection is processing a command */
func (h *Libnbd) AioIsProcessing() (bool, error) {
    if h.h == nil {
        return false, closed_handle_error("aio_is_processing")
    }

    var c_err C.struct_error

    ret := C._nbd_aio_is_processing_wrapper(&c_err, h.h)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("aio_is_processing", c_err)
        C.free_error(&c_err)
        return false, err
    }
    return int(ret) != 0, nil
}

/* AioIsDead: check if the connection is dead */
func (h *Libnbd) AioIsDead() (bool, error) {
    if h.h == nil {
        return false, closed_handle_error("aio_is_dead")
    }

    var c_err C.struct_error

    ret := C._nbd_aio_is_dead_wrapper(&c_err, h.h)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("aio_is_dead", c_err)
        C.free_error(&c_err)
        return false, err
    }
    return int(ret) != 0, nil
}

/* AioIsClosed: check if the connection is closed */
func (h *Libnbd) AioIsClosed() (bool, error) {
    if h.h == nil {
        return false, closed_handle_error("aio_is_closed")
    }

    var c_err C.struct_error

    ret := C._nbd_aio_is_closed_wrapper(&c_err, h.h)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("aio_is_closed", c_err)
        C.free_error(&c_err)
        return false, err
    }
    return int(ret) != 0, nil
}

/* AioCommandCompleted: check if the command completed */
func (h *Libnbd) AioCommandCompleted(cookie uint64) (bool, error) {
    if h.h == nil {
        return false, closed_handle_error("aio_command_completed")
    }

    var c_err C.struct_error
    c_cookie := C.uint64_t(cookie)

    ret := C._nbd_aio_command_completed_wrapper(&c_err, h.h, c_cookie)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("aio_command_completed", c_err)
        C.free_error(&c_err)
        return false, err
    }
    return int(ret) != 0, nil
}

/* AioPeekCommandCompleted: check if any command has completed */
func (h *Libnbd) AioPeekCommandCompleted() (uint64, error) {
    if h.h == nil {
        return 0, closed_handle_error("aio_peek_command_completed")
    }

    var c_err C.struct_error

    ret := C._nbd_aio_peek_command_completed_wrapper(&c_err, h.h)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("aio_peek_command_completed", c_err)
        C.free_error(&c_err)
        return 0, err
    }
    return uint64(ret), nil
}

/* AioInFlight: check how many aio commands are still in flight */
func (h *Libnbd) AioInFlight() (uint, error) {
    if h.h == nil {
        return 0, closed_handle_error("aio_in_flight")
    }

    var c_err C.struct_error

    ret := C._nbd_aio_in_flight_wrapper(&c_err, h.h)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("aio_in_flight", c_err)
        C.free_error(&c_err)
        return 0, err
    }
    return uint(ret), nil
}

/* ConnectionState: return string describing the state of the connection */
func (h *Libnbd) ConnectionState() (*string, error) {
    if h.h == nil {
        return nil, closed_handle_error("connection_state")
    }

    var c_err C.struct_error

    ret := C._nbd_connection_state_wrapper(&c_err, h.h)
    runtime.KeepAlive(h.h)
    if ret == nil {
        err := get_error("connection_state", c_err)
        C.free_error(&c_err)
        return nil, err
    }
    /* ret is statically allocated, do not free it. */
    r := C.GoString(ret)
    return &r, nil
}

/* GetPackageName: return the name of the library */
func (h *Libnbd) GetPackageName() (*string, error) {
    if h.h == nil {
        return nil, closed_handle_error("get_package_name")
    }

    var c_err C.struct_error

    ret := C._nbd_get_package_name_wrapper(&c_err, h.h)
    runtime.KeepAlive(h.h)
    if ret == nil {
        err := get_error("get_package_name", c_err)
        C.free_error(&c_err)
        return nil, err
    }
    /* ret is statically allocated, do not free it. */
    r := C.GoString(ret)
    return &r, nil
}

/* GetVersion: return the version of the library */
func (h *Libnbd) GetVersion() (*string, error) {
    if h.h == nil {
        return nil, closed_handle_error("get_version")
    }

    var c_err C.struct_error

    ret := C._nbd_get_version_wrapper(&c_err, h.h)
    runtime.KeepAlive(h.h)
    if ret == nil {
        err := get_error("get_version", c_err)
        C.free_error(&c_err)
        return nil, err
    }
    /* ret is statically allocated, do not free it. */
    r := C.GoString(ret)
    return &r, nil
}

/* KillSubprocess: kill server running as a subprocess */
func (h *Libnbd) KillSubprocess(signum int) error {
    if h.h == nil {
        return closed_handle_error("kill_subprocess")
    }

    var c_err C.struct_error
    c_signum := C.int(signum)

    ret := C._nbd_kill_subprocess_wrapper(&c_err, h.h, c_signum)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("kill_subprocess", c_err)
        C.free_error(&c_err)
        return err
    }
    return nil
}

/* GetSubprocessPid: get the process ID of the subprocess */
func (h *Libnbd) GetSubprocessPid() (uint64, error) {
    if h.h == nil {
        return 0, closed_handle_error("get_subprocess_pid")
    }

    var c_err C.struct_error

    ret := C._nbd_get_subprocess_pid_wrapper(&c_err, h.h)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("get_subprocess_pid", c_err)
        C.free_error(&c_err)
        return 0, err
    }
    return uint64(ret), nil
}

/* SupportsTls: true if libnbd was compiled with support for TLS */
func (h *Libnbd) SupportsTls() (bool, error) {
    if h.h == nil {
        return false, closed_handle_error("supports_tls")
    }

    var c_err C.struct_error

    ret := C._nbd_supports_tls_wrapper(&c_err, h.h)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("supports_tls", c_err)
        C.free_error(&c_err)
        return false, err
    }
    return int(ret) != 0, nil
}

/* SupportsVsock: true if libnbd was compiled with support for AF_VSOCK */
func (h *Libnbd) SupportsVsock() (bool, error) {
    if h.h == nil {
        return false, closed_handle_error("supports_vsock")
    }

    var c_err C.struct_error

    ret := C._nbd_supports_vsock_wrapper(&c_err, h.h)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("supports_vsock", c_err)
        C.free_error(&c_err)
        return false, err
    }
    return int(ret) != 0, nil
}

/* SupportsUri: true if libnbd was compiled with support for NBD URIs */
func (h *Libnbd) SupportsUri() (bool, error) {
    if h.h == nil {
        return false, closed_handle_error("supports_uri")
    }

    var c_err C.struct_error

    ret := C._nbd_supports_uri_wrapper(&c_err, h.h)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("supports_uri", c_err)
        C.free_error(&c_err)
        return false, err
    }
    return int(ret) != 0, nil
}

/* GetUri: construct an NBD URI for a connection */
func (h *Libnbd) GetUri() (*string, error) {
    if h.h == nil {
        return nil, closed_handle_error("get_uri")
    }

    var c_err C.struct_error

    ret := C._nbd_get_uri_wrapper(&c_err, h.h)
    runtime.KeepAlive(h.h)
    if ret == nil {
        err := get_error("get_uri", c_err)
        C.free_error(&c_err)
        return nil, err
    }
    r := C.GoString(ret)
    C.free(unsafe.Pointer(ret))
    return &r, nil
}

/* IsUri: detect if a string could be an NBD URI */
func (h *Libnbd) IsUri(uri string) (bool, error) {
    if h.h == nil {
        return false, closed_handle_error("is_uri")
    }

    var c_err C.struct_error
    c_uri := C.CString(uri)
    defer C.free(unsafe.Pointer(c_uri))

    ret := C._nbd_is_uri_wrapper(&c_err, h.h, c_uri)
    runtime.KeepAlive(h.h)
    if ret == -1 {
        err := get_error("is_uri", c_err)
        C.free_error(&c_err)
        return false, err
    }
    return int(ret) != 0, nil
}
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           ELF          >                    3         @     @   1f     =tHGHtHH1H     1ff.     fSHG HGHtHHC    1HC    [@ =tHGHtHH1H     1ff.     fSHG HGHtHHC    1HC    [@ AUATUSH      AHHIL      H      H    	  Ao$oM    H   ID$H   I$    ID$       HEH   HE     HE    D       t1H[]A\A]f     X   tH    1H1    f    _   HHH    HD    H|$H5    HH1    xHt$_       vH5    _       H
      H5    H=             UHfSHH   HAo	H
.HL$0LD$0HL$HD$hHHD$HD$P)D$PHD$p    HD$     HD$HD$@    HD$8L$X   H|$    H|$     HE     HE    fH    tn      uߋ\$puD$PHĈ   []    HHH    HD    H|$H5    HH1    xHt$     H5        H
    +  H5    H=        f.     S   H<t9	<v2H   Ht	H   Hǃ       Hǃ       [D  H   Ht	H   Hǃ       Hǃ       ff.     @   1fD          H1Ҿ	   HH	   H1Ҿ
   HH
   SHƇ   o   HFH   H    HF           t	1[D  X   tH    1H1    f.     UHSHH8HD$Ht$HD$D$    HD$     HD$    uN    H    t5      uߋl$  t)    u      t9H8[]     uH
    j   H5    H=        H
    d   H5    H=        f     SH   trƇ   oH   HFH   H    HF           t1H[@ X   tH    1H1    f.         _   HHH    HD    H|$H5    HH1    xHt$_       xH5    _           SHHH0HD$Ht$HD$D$    HD$     HD$    uGH    t5      uߋD$t#      u      tH0[H
    {   H5    H=        ff.     @ S   HƇ       t1[fX   tH    1H1    fSH    u(H    t      u1[ [ÐSH   tz    _   HHH    HD    H|$H5    HH1    xHt$_       H[ H5    _       H[@     _   HHH    HD    H|$H5    HH1    yH5    _       H[ff.     @ UHSHH8HD$Ht$HD$D$    HD$     HD$    u   @ H             uۋ      tT$1H8[]f         l$    HHH    HD؅u2H|$H1H5        x:Ht$    H8[]É    H|$HH5    H1    H5        H
       H5    H=        ff.     SH   trƇ   oH   HFH   H    HF           t1H[@ X   tH    1H1    f.         _   HHH    HD    H|$H5    HH1    xHt$_       xH5    _           UHxSHH8HD$Ht$HD$HD$     HD$    u   @ H             uۋ      tT$1H8[]f.              l$    HHH    HD؅u2H|$H1H5        x:Ht$    H8[]É    H|$HH5    H1    H5        H
       H5    H=        ff.     SH   trƇ   oH   HFH   H    HF           t1H[@ X   tH    1H1    f.         _   HHH    HD    H|$H5    HH1    xHt$_       xH5    _           UH8SHH8HD$Ht$HD$D$    HD$     HD$    u   @ H             uۋ      tT$1H8[]f         l$    HHH    HD؅u2H|$H1H5        x:Ht$    H8[]É    H|$HH5    H1    H5        H
       H5    H=        ff.     SH      H    H  H       oo
   HFH   H    HF          HBH   H    HB    Ƈ       t1H[    X   tH    1H1        _   HHH    HD    H|$H5    HH1    xHt$_       H5    _       H
      H5    H=        ff.     fUfHH
SHH   HFoHT$0Ht$)D$PHD$hHsHD$HD$PHD$p    HD$     HD$HD$@    HL$0HD$8L$X       H|$    H|$     HE     HE    fH    tn      uߋ\$puD$PHĈ   []    HHH    HD    H|$H5    HH1    xHt$     H5        H
       H5    H=        f.     HIо	   1ff.      IHH	   ff.     fHIо
   1ff.      IHH
   unknown opt.c CALLBACK_IS_NULL (l)   %s: server is not using fixed newstyle protocol: %s     server is not using fixed newstyle protocol     CALLBACK_IS_NULL (h->opt_cb.fn.context) option queued, ignoring state machine failure   %s: server replied with error to meta context request: %s       server replied with error to meta context request       nbd_internal_is_state_negotiating (get_next_state (h)) || nbd_internal_is_state_dead (get_next_state (h))       nbd_internal_is_state_ready (get_next_state (h))        %s: libnbd was compiled without TLS support: %s libnbd was compiled without TLS support nbd_internal_is_state_dead (get_next_state (h)) %s: failed to get response to opt_starttls request      %s: failed to get response to opt_starttls request: %s  failed to get response to opt_starttls request  %s: failed to get response to opt_extended_headers request      %s: failed to get response to opt_extended_headers request: %s  failed to get response to opt_extended_headers request  %s: failed to get response to opt_structured_reply request      %s: failed to get response to opt_structured_reply request: %s  failed to get response to opt_structured_reply request  CALLBACK_IS_NULL (h->opt_cb.fn.list)    %s: server replied with error to list request: %s       server replied with error to list request                       nbd_unlocked_aio_opt_list       aio_opt_meta_context_queries    opt_meta_context_queries        nbd_unlocked_opt_list           nbd_unlocked_opt_structured_reply                               nbd_unlocked_opt_extended_headers               nbd_unlocked_opt_starttls       nbd_unlocked_opt_info           nbd_unlocked_opt_go v?       D                    C              :       :   Eint F       R       ^       j      v                                      &              (j       *       ,R       -:       F   F    R                 a       l             L  	    3      5#       6#   X      7X  	    (      F               F               F       "	       #	       $   1(C	5      E      F5      GR       E  :   '     H  V  G    	       	       	       	       
Z:                  	          !      
j   	                  
          :   
 	    J             
J      :   x    Z  :   u   Z      d  d  n      x  x                        	                       n               !    Y                   o      	      
o       ^      h  h  r      |  |                                                 i    }                Y    m  &    0    :    D    N    X      o  	          !b        {c  1      
               W    :    c    :    o    :    	          	         :        !    05      7F        8F       9F       :F       ;
      <Z      =	       >  ( (  H  	      }	      ~{       {          	      	I       		      
   F   D  	  Q  .   {     D   F            	      	       		      
   F     	  D         Z   	      	       		      
   F     	  v   v             	<      	i       		      
   F   d  	  v   {  d  .   D   o  <         	      	       		      
   F     	  v   {    .   D           z   		      	       		      
          	W	      	k	       		      
   F   k	  	  v    W	      &	  	    4	      5{       6{      7{      8c      9c      :	      	  :   { 	    A
      B{       C{      Dc   	    JR
      K{       Lo      Mo   	    T
      U{       Vc      W	  
 	    [
      \{       ]o      ^o      _o   	    
      c       {      c  
 	          c    	    [      c       o      o      o  
 	    v      o    	          o    	          o       c      c      {      {      o   	     I      o       c      c      {      {      {   	    ~      o       o      {   	          o       c      c      {      o   	     )
      o       c      c      {      {      {   	    D
      {    	    l
      {       o   	    
      o    	    
       o       o   !    
      o       o   !    
      {       {   !    /      o   (len c   I                                                  	    
            
                                                                                 !    "    #    $    %    &    '    (    )    *    +    ,    -    .    /    0    1    2    3    4    5    6    7    8    9    :    ;    <    =    >    ?    @    A    B    C    D    E    F    G    H    I    J    K    L    M    N    O    P    Q    R    S    T    U    V    W    X    Y    Z    [    \    ]    ^    _    `    a    b    c    d    e    f /  J                                               	    (0  ptr (   len (.   cap (.        (  	    Gd      H	       Io   	    K  ptr K   len K.   cap K.    <      Kd  	    M  ptr Md   len M.   cap M.        M  1U1      Vn      W      XN      Y	      Zp	   	    8Te  fn [       \      ]  0 - 	      4[   str         9:      -	      ?
   str         9:    -	      :v   str    : E       e      7
      ;                       - i      )
       	   ;	      o       o      	{   K     
       !I      %~      #  Li   M	
      "   (msg       {   N    
b      
{      &)
      &D
      *l
      *
          -0  (hdr 	       	
    :  -      {      |	      	      
  Oor E      )R
      b      c      o  2len o      c      -      o   c  =  :    / $^      %      &   /L      M      N%      O%   
  
  /Q      R      Sd      T   P    #`h      b{       h	      kE      n  8    p	  @    q	  Htls tF   P    u	  X    v  `    w	  h    x	  p    y	  x    |      }                  0      o      F                   W      1                        c      {      c      o      o       o      o      	      	      v          (    @  0    {  8    {  @    {  H    {  P      X      `    o  x      |    /                              		      
.       Q      
.       F         3req '=  !    (  "    )  "    ,  "    -
  "    40  "3pid 5	(  "    :	  "    ;	  "    >	  "    >  "    ?(  "    @  #3rp @  #    AF    #    D0  (#    E
.   @#    H
.   H#    K
.   P#    P^  X#    U  `#    ]J  h#    ^J  p#    cJ  x#    jJ  #    kJ  #    nF   #    qJ  #    r/  #    t  #    u  # !    (  (u    (ops     h  !    J      J       c      c  
    {      {      {       		  ((ids   0(cb 1  8      p    o  t    o  x   !    0x      y
       {
      }
      ~	)      
B       	)  ( O  4        	  .        4        Q  .   F               F   )         B       .  ;       
	       
	      
	         /   2fd 	F   2tls G       	    (      F        	  err F     !    (       F        	p	  (err 
F     <    <    v   v   = "    'F   X       "    :F   t       <      F      "        F    "    F     #  {   = Q    v   "    	
    /   "    F       F    "    
    /   R    E
6  v   v      v    "    

  M  /   "    

  d  /       F                    h C              7              F              I          )           UUT:QTRQXR  p	        
F                    h 
;              >              A          )           UUT:Q0RTXQ      F                  5   h D              8              G              J          )           UUT9QTRQXR      F                     h <              ?              B          )           UUT9Q0RTXQ  >    F           x      "  h 2          opt (o              &              5              8          #    "  	            0"  _e F           $    v           %      H_r F           
                    !  U_           !  UHT	        Qs          t  "  U_ 
        t  U_T	                  X  O"  Us TQ         <  l"  Us T8            "  Us T0Q	         
          U	        T	        Q
R	             "  :    "      F           C      $  h /              E$              5          #    $  	            2$  _e F           $    v           %      h_r F           
                    #  U_           #  UhT	        Qs          t  $  U_ 
        t  U_T	                  <  O$  Us T8            y$  Us T0Q	         
          U	        T	        Q
R	          	     $  :    $      F                  .&  h ;              A              %  0_e F   $    v           %      h_r F           
                    %  U_           %  UhT	        Qs          t  %  U_ 
        t  U_T	                  <  &  Us T8 
           Us T0Q	              F                  '  h ;              A              H'  0_e F   $    v           %      h_r F           
                    &  U_           '  UhT	        Qs          t  &'  U_ 
        t  U_T	                  <  e'  Us T8 
           Us T0Q	              F                  s)  h 3              9          S        N       (  0_e F   $    v           %      h_r F           
                    M(  U_           x(  UhT	        Qs  
        t  U_T	          T    _e F           $    v           %      h_r F           
                    
)  U_           8)  UhT	        Qs          t  P)  U_ 
        t  U_T	           ?    F   )  @h 0       lF                  *  h l/              m5              *  0_e pF   $    pv           %    p  h_r pF           
                    B*  U_           m*  UhT	        Qs          t  *  U_ 
        t  U_T	                  <  *  Us T8 
           Us T0Q	          ?    ^F   +  @h ^-  U    _3       TF                  +  h T?              U3              VB          )        ,  UUT:QTRQ      KF                  ,  h K7              L:          )        ,  UUT:Q0RT      AF                  ,  h A@              B4              CC          )        ,  UUT9QTRQ      8F                  ,  h 88              9;          )        ,  UUT9Q0RT  >    F           f      O/  h .          opt  $o              !"              "1          4s $  4l %p	  ~4c &  #    _/  	            .  _e 0F           $    0v           %    0  ~_r 0F           
                    .  Us            F.  U~T	        Qv          t  ^.  Us  
        t  Us T	          5|=                  %       -.  *=                    .  Us T	 
                      /  Us TTQQR~X 
          U	        T	        Q
+R	             _/  :    O/  A    F           ,       /      	          err &D          h /             A    
F           3       !0      
	              
,v           h /           &    F           f      =2  'h +          .    A$          s   l 	  ~c   #    M2  	            }1  _e F           $    v           %      ~_r F           
                    1  Us            C1  U~T	        Qv          t  [1  Us  
        t  Us T	          V|=                  %       1  *=                    1  Us T	 
                   "  2  Us T~Q 
          U	        T	        QR	             M2  :    =2  B    F           ,       2  .    	          'err #D          h 2             B    F           3       3  .    	          .    )v           .    ;v           h 2           &    F           D      N5  'h 7          err F   c   @r F           #    ^5  	            4  _e F           6    v           7      _r F           
                    4  UT	        Qs          t  (4  Uv            @4  Uv            l4  UT	        Qs  
        t  Uv T	          +|=          %       4  ,=            4  Us T	 
                   $  4  Us T@ 
        M  
        6  
          U	        T	        QR	             ^5  :   ! N5  &    F           D      7  'h 7          err F   c   @r F           #    ^5  	            6  _e F           6    v           7      _r F           
                    Y6  UT	        Qs          t  q6  Uv            6  Uv            6  UT	        Qs  
        t  Uv T	          +|=          %       #7  ,=            7  Us T	 
                   .&  A7  Us T@ 
        M  
        6  
          U	        T	        QR	          &    F           D      9  'h /          err F   c   @r F           #    $  	            9  _e F           6    v           7      _r F           
                    8  UT	        Qs          t  8  Uv            8  Uv            8  UT	        Qs  
        t  Uv T	          +|=          %       W9  ,=            I9  Us T	 
                   '  u9  Us T@ 
        M  
        6  
          U	        T	        QR	          &    F           ?       n:  'h ,          r F           +|=          #       
Y:  ,=            K:  Us T	 
           
        s)  Us   &    pF                  ;  'h p+          err rF   Lc s  Pr tF           #    M2  	        +|=          !       y);  ,=            ;  Us T	 
                   )  G;  Us TP 
        M  
        6  
          U	        T	        Q{R	          &    YF                  =  'h Y)          err [F   c \  @r ]F           #    )=  	        +|=          !       bY<  ,=            K<  Us T	 
                   *  w<  Us T@ 
        M  
        6  
                    <  U	        T	        QjR	         
          U	        T	        QdR	             )=  :    =  W    PF                  |=  C    P	  U8err P!D  Ti RD           X    EF   =  Yh E%   &    ?F                  =  8h ?/  U &    7F           
       =  8h 7/  UC    77  T Z    ,        u       ->  'h ,.           [*          f       >  **          *+          5*                          ^>  *+          **          
           Us T0Q	          
        <  Us T8  \s)          >       *)          5s)                          _?  *)          
           Us T0Q	          
        <  Us T8   I ~  
 :;9I8  (   H}   I   !I  
 :;9I8   :;9I  	:;9  
H }  
 :!;9I8   :!;9IB  
H}  7 I  
 :!;9I8  
 :!;9I  
 :;9I  & I   :!;9IB  I  4 :!;9IB  G I  ! I/  
 :;9I8  4 :!;9IB  .?:!;9!'I@z  4 :!;9I  $ >  'I   <  U   :;9  !:;9!  ".?:;9'I<  #4 I4  $4 :!;9IB  %4 :!;9I  &.?:!;9!'I@z  ' :!;9IB  (
 :;9I8  )H}  * 1B  +1X!YW  , 1  -:!;9  . :!;9IB  /:!;9!  04 :!;9!I!   1:;9  2
 :!;9I  3
 :!;9I8  44 :!;9I  51RBX!YW  64 :!;9!IB  74 :!;9!I  8 :!;9I  9! I/  ::!;9  ;:!;9  <.?:!;9!
'<  =   >.:!;9!'I@z  ?.?:!;9!'I !  @ :!;9I  A.:!;9!'I@|  B.:!;9!'I@|  C :!;9I  D%  E$ >  F   G&   H'  I>I:;9  J>I:;9  K:;9  L
 I  M:;9  N:;9  O
 :;9I  P:;9  Q. ?:;9'I<  R.?:;9'<  S  TU  U :;9I  V1RBXYW  W.:;9'I@z  X.:;9'I   Y :;9I  Z.?:;9'@|  [.1@z  \.1@z   
            $$U$$U       $$T$$Q$$T       $$Q$$R$$Q       $$R$$X$$R     $$U$$U       $$T$$R$$T       $$Q$$X$$Q     #$U$$U       ##T#$Q$$T       ##Q#$R$$Q       ##R#$X$$R     ##U##U       ##T##R##T       ##Q##X##Q               USUSUUS               T]T]TT]         QQQQ               R\R\RR\               XVXVXXV    __     SS     PP               USUSU U  S             TTT T  T  T             QQQ Q  Q  Q   _    S       P  P             USUSUU         TTTT   S     PP             USUSUU         TTTT   S     PP         UUUU         TTTT   S   P    __     SS     PP             USU
S

U
U         T
T

T
T   
S     

P
P     		U		U       		T		Q		T       		Q		R		Q     		U		U       		T		R		T     		U		U       		T		Q		T       		Q		R		Q     		U		U       		T		R		T         USUS     TT     QQ             RVRVRV    SS     VV     PP  S       USU     TT      USU       UUU       TTT      UUU          !U!"S"#U##S              !T!"V""T""V"#T##V    "#S##S     "#V##V     "#P##P  ""S       PfUf{S{|U     PgTg|T      PfUf{S{|U       /U/8U8CU       0T08T8CT       0Q08Q8CQ      /U/8U8CU             USUSUS             P0p 00	0     VV     SS     PP             USUSUS             P0p 00	0     VV     SS     PP             USUSUS             P0p 00	0     VV     SS     PP           USUSU   P         USUS       P00         

U
SUS       

P00   U         USUS         		U	
S

U

S     		T	
T   

T   

S         USUS   S ,                     C                                 


           "###        
                                                                                                                                                 	         ./.u
Y  N J / , 
>=  J .  ,     X.u
Y  N J / , 
>=  J .  ,     X.X h[}/!uX
Z/: rfXX 	J 	 
 
 
 
 
 4~'KItZY\X ~	K	
WJNK 	J 	y 
{ 
 
 
 
 z.~)!s=L8< L     X   d  #uu
=tX 	        	
=<XX 	        
=tX 	        	
=<XX 	         =uYXX Y   <dx}"rYWWZi	
WKeK XtU  z(Yus!XX
Z/ wXX 	J 	 
 
~"rvYWWZRt	
W3 
XX z .#U=vX Y   <:~f =Zt	
W . G[ .YXX 	J 	 
t 
 
 
 
 
oXXX 
J 
 
 
 
 
}"rYWWZ	
 	K	XyJ/J J X 	J 	rJX z<  
. 
 
 
 
 ++Yus!XX
Z/ wXX 	J 	 
 
~"rYW/Z	
 	K	Xy/J J X 	J 	rJX z<  
. 
 
 
 
 ++Yus!XX
Z/ wXX 	J 	 
 
~"rYWWZ~	
	K	XyJ/J J X 	J 	rJX z<  
. 
 
 
 
 ++Y fLH!U!uX
Z/ uJXX 	J 	 
s 
 
.   t~!I?q0\X ~	K	
WJNK 	J 	y 
{ 
 
 
 
 z.)
gX.X 	        

=<<XX 	        	
gX.X 	        

=<<XX socklen_t export_name chunk size_t sa_family sockaddr_in6 STATE_NEWSTYLE_OPT_LIST_RECV_REPLY_PAYLOAD __kind meta_valid opt_cb context_complete uri_allow_local_file __ssize_t sockaddr_at ai_addrlen STATE_NEWSTYLE_OPT_STRUCTURED_REPLY_RECV_REPLY string_vector sin_family nrqueries __pthread_list_t sin_addr bs_hdr_32 STATE_NEWSTYLE_OPT_META_CONTEXT_CHECK_REPLY nbd_internal_debug STATE_CONNECT_TCP_START nbd_fixed_new_option_reply_server cmd_connect_socket ai_flags opt_current __next block_minimum __data sockaddr_x25 ai_next __prev state sockaddr_inarp STATE_NEWSTYLE_OPT_EXPORT_NAME_CHECK_REPLY nbd_chunk_block_status_32 __PRETTY_FUNCTION__ uri_allow_tls __pthread_internal_list type STATE_NEWSTYLE_OPT_STRUCTURED_REPLY_CHECK_REPLY __owner nbd_chunk_offset_data ai_canonname rlen callback ssize_t sbuf ss_family meta_contexts _context STATE_NEWSTYLE_OPT_META_CONTEXT_SEND extent32 nbd_unlocked_opt_list __uint8_t STATE_NEWSTYLE_SEND_CFLAGS sockaddr_dl external_event STATE_NEWSTYLE_FINISHED wbuf exportsize cmd_issue sock bs_hdr_64 queries private_data long int STATE_REPLY_CHECK_REPLY_MAGIC connaddrlen initialized reply_state name_desc STATE_NEWSTYLE_OPT_EXPORT_NAME_START STATE_NEWSTYLE_OPT_META_CONTEXT_PREPARE_FOR_REPLY gflags tls_negotiated error nbd_internal_get_error_context STATE_NEWSTYLE_OPT_STARTTLS_TLS_HANDSHAKE_READ nbd_fixed_new_option_reply_info_export nbd_unlocked_opt_info bs_cooked __nusers nbd_old_handshake hname payload_left pread_initialize STATE_NEWSTYLE_PREPARE_OPT_ABORT nbd_list_callback offset_data signed char STATE_NEWSTYLE_OPT_STRUCTURED_REPLY_RECV_REPLY_PAYLOAD uint8_t maximum STATE_REPLY_CHUNK_REPLY_RESYNC sockaddr_iso server nbd_internal_run context nbd_unlocked_aio_opt_set_meta_context __pthread_mutex_s extent64 STATE_CLOSED nbd_unlocked_opt_list_meta_context_queries nbd_chunk_callback STATE_NEWSTYLE_OPT_LIST_RECV_REPLY unsigned char STATE_NEWSTYLE_OPT_GO_RECV_REPLY __spins result context_helper status_flags querylist sin6_scope_id STATE_NEWSTYLE_OPT_META_CONTEXT_SEND_NRQUERIES _Bool structured nbd_unlocked_opt_set_meta_context_queries value nbd_internal_is_state_connecting char sockaddr_eon __ss_align nbd_context_callback nbd_internal_set_querylist connect_errno __uint16_t sockaddr_in STATE_NEWSTYLE_OPT_STARTTLS_CHECK_REPLY sin_port nbd_unlocked_poll cmd_connect_sockaddr flags STATE_REPLY_FINISH_COMMAND STATE_NEWSTYLE_OPT_EXTENDED_HEADERS_START cmd_connect_tcp nbd_extent STATE_MAGIC_START cmds_to_issue sin6_port simple __socklen_t STATE_REPLY_CHUNK_REPLY_FINISH request_sr rbuf sin_zero cmds_done oldsock nbd_structured_reply unique tls_username STATE_NEGOTIATING cmds_done_tail nbd_internal_is_state_negotiating nbd_internal_is_state_ready STATE_DEAD opt_meta_context_queries STATE_REPLY_CHUNK_REPLY_RECV_OFFSET_DATA_DATA export STATE_REPLY_CHUNK_REPLY_START in_addr_t STATE_NEWSTYLE_OPT_GO_SEND_NRINFOS nbd_unlocked_opt_list_meta_context STATE_CONNECT_TCP_CONNECT __lock context_visitor STATE_NEWSTYLE_OPT_STARTTLS_START STATE_CONNECT_TCP_NEXT_ADDRESS nbd_unlocked_aio_opt_list payload_maximum STATE_NEWSTYLE_OPT_STARTTLS_RECV_REPLY_PAYLOAD cflags STATE_NEWSTYLE_OPT_GO_SEND_INFO nbd_unlocked_aio_opt_extended_headers STATE_REPLY_SIMPLE_REPLY_START STATE_CONNECT_TCP_CONNECTING STATE_REPLY_CHUNK_REPLY_RECV_ERROR_MESSAGE nbd_unlocked_get_opt_mode cmd_connect_sa block_preferred __uint64_t nbd_chunk_error long unsigned int reply list_visitor bs_raw nbd_internal_free_option chunk_payload STATE_REPLY_CHUNK_REPLY_RECV_OFFSET_HOLE new_handshake STATE_REPLY_SIMPLE_REPLY_RECV_READ_PAYLOAD disconnect_request option nbd_internal_set_last_error STATE_NEWSTYLE_OPT_GO_RECV_REPLY_PAYLOAD nbd_unlocked_opt_go nbd_fixed_new_option_reply_meta_context ai_family nbd_unlocked_aio_opt_info ai_socktype pending nbd_unlocked_aio_opt_go querynum uintptr_t __size nbd_extended_reply in_flight sockaddr_ns payload opt_mode STATE_NEWSTYLE_OPT_EXTENDED_HEADERS_RECV_REPLY STATE_REPLY_START STATE_REPLY_CHUNK_REPLY_RECV_OFFSET_DATA STATE_NEWSTYLE_OPT_META_CONTEXT_PREPARE_NEXT_QUERY nbd_fixed_new_option_reply export_name_reply argv STATE_NEWSTYLE_OPT_EXTENDED_HEADERS_SEND nbd_completion_callback nbd_unlocked_aio_opt_starttls nbd_unlocked_opt_set_meta_context sockaddr_ipx uri_allow_transports sact_tmpdir STATE_NEWSTYLE_OPT_META_CONTEXT_SEND_EXPORTNAMELEN send chunks_received description __uint32_t __u6_addr8 protocol long long int context_id option_reply uint32_vector request_meta_contexts cmds_in_flight connaddr replylen pad_ bytes_received aio_opt_meta_context_queries structured_replies cmds_to_issue_tail storage hints STATE_NEWSTYLE_START nbd_unlocked_opt_structured_reply STATE_ISSUE_COMMAND_PREPARE_WRITE_PAYLOAD complete strerror notify_write tls_certificates count STATE_NEWSTYLE_OPT_STARTTLS_TLS_HANDSHAKE_DONE STATE_REPLY_CHUNK_REPLY_RECV_ERROR STATE_ISSUE_COMMAND_PAUSE_WRITE_SHUTDOWN extended_headers cmd_create unsigned int extended pthread_mutex_t STATE_NEWSTYLE_OPT_STARTTLS_SEND STATE_CONNECT_START compact nbd_unlocked_opt_starttls list_helper nbd_unlocked_aio_opt_list_meta_context_queries meta_context pid_t cookie shut_writes STATE_ISSUE_COMMAND_START export_name_len meta_vector preferred STATE_NEWSTYLE_OPT_LIST_CHECK_REPLY STATE_NEWSTYLE_RECV_GFLAGS offset STATE_NEWSTYLE_SEND_OPT_ABORT list debug_callback STATE_NEWSTYLE_OPT_META_CONTEXT_SEND_QUERYLEN block_maximum in6_addr __count bytes_sent nbd_simple_reply asprintf wlen recv nbd_new_handshake narrow socket_ops STATE_START _errp ai_addr opaque wflags nbd_unlocked_opt_extended_headers nbdmagic minimum sin6_family __pid_t tls_psk_file STATE_CONNECT_CONNECTING STATE_REPLY_RECV_STRUCTURED_REMAINING public_state info STATE_NEWSTYLE_OPT_EXPORT_NAME_SEND STATE_NEWSTYLE_OPT_META_CONTEXT_SEND_EXPORTNAME sact_name nbd_chunk_offset_hole sockaddr_un STATE_OLDSTYLE_CHECK STATE_OLDSTYLE_RECV_REMAINING long long unsigned int sa_family_t command __list request_meta length uint16_t STATE_NEWSTYLE_OPT_LIST_SEND STATE_NEWSTYLE_OPT_GO_START err_msg nbd_unlocked_aio_opt_list_meta_context STATE_NEWSTYLE_OPT_META_CONTEXT_START wait_for_option optlen notify_read sa_data tls_verify_peer GNU C17 12.2.0 -mtune=generic -march=x86-64 -g -O2 -fPIC -fasynchronous-unwind-tables nbd_debug_callback STATE_NEWSTYLE_OPT_STARTTLS_TLS_HANDSHAKE_WRITE debug STATE_REPLY_CHUNK_REPLY_RECV_BS_ENTRIES nbd_unlocked_opt_abort sockaddr addrinfo __assert_fail STATE_NEWSTYLE_OPT_STRUCTURED_REPLY_START hostname nbd_export_name_option_reply version nbd_handle nbd_fixed_new_option_reply_info_name_or_desc STATE_NEWSTYLE_CHECK_GFLAGS nbd_extent_callback list_complete bs_count STATE_READY nbd_internal_is_state_dead zeroes block_size __align in_addr STATE_NEWSTYLE_OPT_STRUCTURED_REPLY_SEND completion in_write_payload STATE_ISSUE_COMMAND_PAUSE_SEND_REQUEST STATE_MAGIC_CHECK_MAGIC offset_hole STATE_NEWSTYLE_OPT_STARTTLS_RECV_REPLY xcreds name port STATE_REPLY_CHUNK_REPLY_RECV_ERROR_TAIL chunks_sent nbd_unlocked_aio_opt_structured_reply nbd_block_descriptor_32 __ss_padding sockaddr_storage short int nbd_extent64_callback nbd_new_option align_ uint64_t wide nbd_request STATE_NEWSTYLE_OPT_GO_SEND_EXPORTNAMELEN STATE_ISSUE_COMMAND_SEND_WRITE_SHUTDOWN STATE_NEWSTYLE_OPT_META_CONTEXT_RECV_REPLY command_cb __elision in_write_shutdown STATE_ISSUE_COMMAND_SEND_REQUEST STATE_NEWSTYLE_OPT_EXPORT_NAME_RECV_REPLY tls_hostname __val sin6_addr request_eh STATE_ISSUE_COMMAND_SEND_WRITE_PAYLOAD STATE_NEWSTYLE_OPT_GO_CHECK_REPLY nbd_request_ext tls_shut_writes socket __int64_t reply_cmd nbd_unlocked_aio_opt_set_meta_context_queries nbd_chunk_block_status_64 STATE_NEWSTYLE_OPT_EXPORT_NAME_SEND_EXPORT canonical_name strict STATE_NEWSTYLE_OPT_META_CONTEXT_RECV_REPLY_PAYLOAD STATE_CONNECT_COMMAND_START s_addr sockaddr_ax25 STATE_MAGIC_RECV_MAGIC __u6_addr16 STATE_NEWSTYLE_SEND_OPTION_SHUTDOWN reply_header uint32_t STATE_NEWSTYLE_OPT_GO_SEND nrinfos nbd_block_descriptor_64 sact_sockpath STATE_NEWSTYLE_OPT_LIST_START full_info free request_block_size get_fd short unsigned int magic nbd_fixed_new_option_reply_info_block_size nbd_unlocked_set_opt_mode user_data eflags STATE_NEWSTYLE_OPT_EXTENDED_HEADERS_CHECK_REPLY nbd_unlocked_aio_opt_abort STATE_NEWSTYLE_OPT_EXTENDED_HEADERS_RECV_REPLY_PAYLOAD pskcreds int64_t STATE_CONNECT_SA_START STATE_OLDSTYLE_START data_seen __u6_addr32 go_complete STATE_ISSUE_COMMAND_PAUSE_WRITE_PAYLOAD STATE_REPLY_CHUNK_REPLY_RECV_BS_HEADER sin6_flowinfo STATE_ISSUE_COMMAND_FINISH next STATE_NEWSTYLE_OPT_META_CONTEXT_SEND_QUERY data close session cmd_connect_command ai_protocol STATE_NEWSTYLE_OPT_GO_SEND_EXPORT in_port_t old_handshake lock STATE_REPLY_RECV_REPLY compl __in6_u opt.c /tmp/libnbd/lib /tmp/libnbd/lib /usr/lib/gcc/x86_64-linux-gnu/12/include /usr/include/x86_64-linux-gnu/bits /usr/include/x86_64-linux-gnu/sys /usr/include /usr/include/netinet ../include ../common/utils opt.c opt.c stddef.h types.h types.h stdint-intn.h thread-shared-types.h struct_mutex.h pthreadtypes.h stdint-uintn.h stdint.h stdatomic.h socket.h sockaddr.h in.h netdb.h libnbd.h nbd-protocol.h states.h string-vector.h internal.h string.h stdio.h unlocked.h assert.h  GCC: (Debian 12.2.0-14+deb12u1) 12.2.0         zR x                      0       3    [L    H       ,    Ch      d       3    [L    |       ,    Ch   8          x   BBA A(D@
(A ABBJ (          f   AHJ
AAA          u    AA
F             
          4                H                \                p                                      f    AA
F   (             AHGP
CAD               AD M
AE               AN@
AA    ,      >    A\
C   H      ?    As
DF 0   h          AD Y
FDU
FERF 4         D   AHGP{
AAC[
FAA              AD M
AE 4         D   AHGPs
AAK[
FAA    0          AD M
AE 4   T      D   AHGP{
AAC[
FAA          C   AD 
AH (         f   AOJ
AAA                                                                                                                                                                  3             P       ,       .            3       >            ,                                                   O            x      l                     q                      v                      {      8                                                              h               S     p      f                                                     @                                        0                                       8                                                                            h                                                                      0     8              6                   <     H              B                   H           "       ^                   d                    j     @              p           "                               x                                                        `                                                               
                                                                                                                                                                                                                   "                     +                     4                     P                     ^                     p                               u           `      
           p                                               ,                 N                 x          f           0                                                                                                               -          >       H          ?       _    P             }    @	      D          
                       D                           
      D      '          C      A    `      f      W                 ~                                      0              opt.c go_complete list_visitor list_complete context_visitor context_complete aio_opt_meta_context_queries .LC5 .LC0 .LC1 .LC2 __PRETTY_FUNCTION__.1 .LC3 .LC4 .LC7 .LC8 __PRETTY_FUNCTION__.2 .LC6 __PRETTY_FUNCTION__.8 .LC10 .LC9 __PRETTY_FUNCTION__.7 .LC11 .LC12 .LC14 .LC15 .LC16 __PRETTY_FUNCTION__.6 .LC13 .LC17 .LC18 .LC19 __PRETTY_FUNCTION__.5 .LC20 .LC21 .LC22 __PRETTY_FUNCTION__.4 __PRETTY_FUNCTION__.0 .LC23 .LC24 .LC25 __PRETTY_FUNCTION__.3 nbd_internal_set_querylist nbd_internal_run nbd_internal_debug nbd_internal_get_error_context strerror asprintf nbd_internal_set_last_error __assert_fail nbd_unlocked_poll nbd_internal_is_state_connecting nbd_internal_free_option nbd_unlocked_set_opt_mode nbd_unlocked_get_opt_mode nbd_unlocked_opt_list_meta_context nbd_unlocked_opt_list_meta_context_queries nbd_unlocked_opt_set_meta_context nbd_unlocked_opt_set_meta_context_queries nbd_unlocked_aio_opt_go nbd_unlocked_opt_go nbd_internal_is_state_negotiating nbd_internal_is_state_dead nbd_internal_is_state_ready nbd_unlocked_aio_opt_info nbd_unlocked_opt_info nbd_unlocked_aio_opt_abort nbd_unlocked_opt_abort nbd_unlocked_aio_opt_starttls nbd_unlocked_opt_starttls nbd_unlocked_aio_opt_extended_headers nbd_unlocked_opt_extended_headers nbd_unlocked_aio_opt_structured_reply nbd_unlocked_opt_structured_reply nbd_unlocked_aio_opt_list nbd_unlocked_opt_list nbd_unlocked_aio_opt_list_meta_context nbd_unlocked_aio_opt_list_meta_context_queries nbd_unlocked_aio_opt_set_meta_context nbd_unlocked_aio_opt_set_meta_context_queries                 7            8                        9            :                        ;            
            <   (         =   9            C         =   L         /          X            _            d         >   )         ?   9         @   X         :   g            p         ;   |                     <            =                        =            /   <                                        >            8                         9   f         H            ?            @            J            K            L            /   ,                                       >            /   ,                                       >   c         8                        9            :                        ;            
            <            =                        =   E         M   Y         ?   i         @            J            K            /                                          >            8                        9            O   )         ?   9         @   _         :   q            z         ;                        <            =                        =            :                        ;    	         
   
	         <   	            "	         =   v	         Q   	         ?   	         @   	         J   	         K   	         :   	            
            
         <   #
         =   6
         ;   E
            O
         <   X
            _
         =   h
         /          t
            {
         !   
         >   
         8   
                      9            :   #            ,         ;   8         
   E         <   X         =   i            s         =            S            ?            @            J            K   (         :   5            N         "   S         <   c         =   v         ;            #            <            $            =            /                               !            >   
         8   4
            @
         9   Q
         :   c
            l
         ;   x
         
   
         <   
         =   
            
         =   
         U            ?   %         @   4         J   W         K   h         :   u                     &            <            =            ;            '            <            (            =            /   |                            !             >            8                        9            :                        ;            
            <            =   $            .         =   7         /   C            J         +   O         >            W            ?   )         @   H         :   W            `         ;   l         ,   y         <            =            -            =            /   \                                        >          
   1           
       
   5                
   6                  
   6                               *       
   4           /       
   5          =       
   5   #
      U       
   5         a       
   5         m       
   5                
   5   J             
   5   G             
   5                
   5                
   5                
   5   J             
   5                
   5                
   5                 
   5   
             
   5               
   5                
   5   	      )      
   5         5      
   5         A      
   5          O      
   5         Y      
   5         f      
   5   
      s      
   5               
   5               
   5               
   5   j            
   5               
   5               
   5   {            
   5   e             
   5   v            
   5   !            
   5               
   5               
   5         )      
   5         F      
   5         X      
   5   <      d      
   5         p      
   5   u      |      
   5               
   5               
   5               
   5               
   5                 
   5               
   5               
   5   #             
   5               
   5   9      #      
   5   #      0      
   5   ,      =      
   5   \      e      
   5          y      
   5               
   5               
   5   O            
   5               
   5               
   5               
   5   (            
   5   	            
   5   -             
   5         !      
   5   	      /      
   5          =      
   5         K      
   5         i      
   5         }      
   5   g            
   5   k            
   5               
   5   }            
   5         c      
   5          o      
   5         |      
   5               
   5   [!            
   5               
   5   8            
   5   F             
   5               
   5   !      )      
   5         6      
   5         D      
   5   s      R      
   5         `      
   5   -!      n      
   5          |      
   5   N            
   5               
   5               
   5               
   5   	            
   5   o	            
   5   
            
   5   l            
   5         O      
   5         d      
   5   
      q      
   5   l      ~      
   5               
   5               
   5   
            
   5   l            
   5                
   5   *            
   5   
      "      
   5   l      /      
   5         o      
   5   ~            
   5   
            
   5   l            
   5               
   5   T            
   5   
       	      
   5   l      
	      
   5         	      
   5         0	      
   5   
      =	      
   5   l      J	      
   5         q	      
   5   g      }	      
   5         	      
   5         	      
   5   "      	      
   5         	      
   5         	      
   5   v      	      
   5         	      
   5         	      
   5         
      
   5   "      
      
   5         
      
   5   j      +
      
   5   "      8
      
   5   
      E
      
   5         S
      
   5         `
      
   5         m
      
   5   v      z
      
   5         
      
   5         
      
   5   !      
      
   5   
      
      
   5   5
      
      
   5   j      
      
   5   4      
      
   5         
      
   5         
      
   5   v      
      
   5   5            
   5               
   5   '      '      
   5         4      
   5         A      
   5         N      
   5   D      \      
   5         i      
   5         w      
   5   K            
   5               
   5               
   5   !            
   5   	            
   5               
   5               
   5   c            
   5   i            
   5               
   5   !            
   5   	            
   5         "      
   5         /      
   5   c      <      
   5   i      J      
   5         W      
   5   !      d      
   5         q      
   5               
   5   
            
   5   !            
   5   	            
   5               
   5               
   5               
   5               
   5   !            
   5   	            
   5         
      
   5         
      
   5   c      
      
   5         *
      
   5         7
      
   5   c      E
      
   5   g      R
      
   5   c      _
      
   5         m
      
   5   T      z
      
   5         
      
   5         
      
   5         
      
   5         
      
   5   b      
      
   5         
      
   5   i      
      
   5         
      
   5         
      
   5               
   5   
            
   5         0      
   5         B      
   5   <      H      
   5   M      N      
   5         T      
   5   z      Z      
   5   P      `      
   5         f      
   5         l      
   5         r      
   5          x      
   5   z	      ~      
   5   !            
   5   ^            
   5   '             
   5               
   5               
   5               
   5   H            
   5   b            
   5               
   5               
   5   ,            
   5               
   5               
   5               
   5               
   5   =            
   5   o            
   5   5	            
   5               
   5               
   5               
   5   }            
   5               
   5               
   5                
   5               
   5                
   5   s      &      
   5   D      ,      
   5         2      
   5   -      8      
   5         >      
   5         D      
   5         J      
   5          P      
   5         V      
   5         \      
   5         b      
   5   ;      h      
   5   (      n      
   5   ~      t      
   5         z      
   5   9!            
   5   
            
   5   "            
   5   U            
   5               
   5               
   5   s            
   5   	            
   5   |            
   5   ^            
   5   )            
   5               
   5               
   5   $            
   5   :             
   5   $            
   5               
   5   j            
   5   D            
   5               
   5   *
            
   5               
   5               
   5   =      
      
   5   7            
   5               
   5               
   5   ^       "      
   5         (      
   5         .      
   5          4      
   5   F      :      
   5   x!      @      
   5   '      F      
   5         L      
   5   h      R      
   5   
      X      
   5   
      ^      
   5         d      
   5         j      
   5         p      
   5   X      v      
   5   
      |      
   5   v
            
   5                
   5   s            
   5   L            
   5   	            
   5   	            
   5   
            
   5               
   5               
   5               
   5   K            
   5               
   5               
   5   _	            
   5   !            
   5               
   5               
   5               
   5          1      
   5          =      
   5         J      
   5         W      
   5         e      
   5               
   5               
   5   .            
   5   .            
   5   i            
   5         
      
   5                
   5         %      
   5         2      
   5         K      
   5         X      
   5         o      
   5   x            
   5               
   5               
   5   x      	      
   5   
            
   5         !      
   5   i      -      
   5         9      
   5   D      O      
   5   !      \      
   5         s      
   5   !            
   5   s            
   5               
   5   h            
   5   	            
   5               
   5               
   5               
   5   c            
   5   h
            
   5   y      &      
   5         2      
   5   v      >      
   5   1      J      
   5         V      
   5         z      
   5               
   5   y            
   5   e!            
   5   
            
   5   
            
   5               
   5   5
            
   5               
   5         	      
   5               
   5         !      
   5   
      F      
   5   a      R      
   5         g      
   5         s      
   5   *            
   5               
   5               
   5   *            
   5               
   5   *            
   5   !            
   5               
   5   s!            
   5               
   5   
             
   5   ]      ,      
   5   X      9      
   5         F      
   5   
      S      
   5         `      
   5         m      
   5         z      
   5               
   5   	            
   5               
   5   <            
   5   t            
   5               
   5                
   5               
   5               
   5   w             
   5         	      
   5               
   5         #      
   5         0      
   5         =      
   5   v      J      
   5         W      
   5         d      
   5         q      
   5         ~      
   5               
   5               
   5               
   5               
   5   
            
   5               
   5               
   5   x            
   5               
   5   m             
   5         
      
   5               
   5         '      
   5         4      
   5         A      
   5   l       N      
   5   -      [      
   5         h      
   5   	      u      
   5               
   5               
   5               
   5   ]            
   5               
   5   &            
   5   +            
   5   a            
   5   E            
   5               
   5         '      
   5         5      
   5         C      
   5         Q      
   5         _      
   5   ~      z      
   5               
   5               
   5               
   5               
   5               
   5   H
            
   5   q            
   5   	            
   5               
   5   R            
   5   	            
   5   <
      "      
   5         0      
   5   *      >      
   5   ]      L      
   5   
      Z      
   5   	      i      
   5               
   5               
   5                
   5   	            
   5               
   5               
   5   c            
   5   i            
   5   !             
   5   Q      .      
   5   <       <      
   5         P      
   5   1      ]      
   5         k      
   5         y      
   5               
   5               
   5               
   5   !      Q      
   5   !      _      
   5         m      
   5         {      
   5   	            
   5               
   5   i            
   5               
   5               
   5   i            
   5         !      
   5   g      =      
   5         Y      
   5   |      u      
   5   
            
   5   B            
   5               
   5               
   5   )            
   5               
   5   m
            
   5         7      
   5         N      
   5   K
      e      
   5   4      o            0            
   2                
   2                
   5   	            
   2   (             
   2   "             
   5               
   2   G             
   2   A             
   5   !            
   2   f             
   2   `                   C            
   5                           8      
   2          <      
   2          A      
   5         L      
   2          P      
   2          U      
   5   9      `      
   2          d      
   2          i            "            
   5                                 
   2                
   2                
   5   	            
   2                
   2                
   5               
   2               
   2               
   5   !            
   2   -             
   2   '                         6       
   5   L      @                   `       
   2   J      d       
   2   F      i       
   5         t       
   2   b      x       
   2   \      }       
   5   9             
   2                
   2   {                                
   5                                    
   2                
   2                
   2         !      
   2         !      
   5   	      !      
   2   .      !      
   2   &      !      
   5         %!      
   2   _      )!      
   2   Q      .!      
   5   9      9!      
   2         =!      
   2         B!      
   5   n      L!         /           U!      
   3          h!      
   2         l!      
   2         q!      
   5   ;      |!      
   2         !      
   2         !      
   5   H      !      
   2         !      
   2         !                  !                   !                  !         	           !            ,      "            G      &"         	   8       1"                  P"                  m"                  "         	          "            h      "         	   h       "                   "         /           "      
   5         "                  #      
   2   (      #      
   2         #      
   5         '#      
   2   l      +#      
   2   `      0#      
   5   9      ;#      
   2         ?#      
   2         D#      
   5   n      N#         /           W#      
   3   o       j#      
   2         n#      
   2         s#      
   5   ;      ~#      
   2         #      
   2         #      
   5   H      #      
   2         #      
   2         #                  #                  #                  #         	           #                  $            2      ($         	   8       3$                  P$                  p$         	          z$            S      $         	   x      $                   $         /           $      
   5         $                  $      
   2         $      
   2   	      %      
   5   9      %      
   2   N      %      
   2   F      %      
   3   Y       +%      
   5   ;      6%      
   2   s      :%      
   2   q      ?%      
   5   H      X%      
   2         \%      
   2   {      a%            U
      n%            p
      %            
      %         	           %            
      %            
      %         	   8       %            
      &            D
      $&         	          /&      
   5   B      9&            
      Y&      
   2         ]&      
   2         b&      
   5   9      m&      
   2         q&      
   2         v&      
   3   C       &      
   5   ;      &      
   2         &      
   2         &      
   5   H      &      
   2         &      
   2          &                  &            0      &            I      &         	           '            \      ''            w      >'         	   8       I'            
      f'                  '         	          '      
   5   '      '            P      '      
   2         '      
   2         '      
   5   9      '      
   2   F      '      
   2   >      '                  '      
   5   ;      '      
   2   k      (      
   2   i      (      
   5   H       (      
   2   u      $(      
   2   s      )(                  6(                  N(            	      i(         	           y(            &	      (         	   8       (      
   3   -       (      
   2         (      
   2   }      (      
   5   ;      (      
   2         (      
   2         (      
   5   H      (      
   2         (      
   2         (            c      (            ~      )                  ))         	         9)                  Q)                  h)         	         t)      
   5         )      
   5   }      )                   )      
   2         )      
   2         )      
   5   9      )      
   2         )      
   2         )      
   3   "       )      
   5   ;      )      
   2   $      )      
   2   "      )      
   5   H      *      
   2   0      *      
   2   ,      *                  +*                  C*                  ^*         	           n*                  *                  *         	   8       *            g      *                  *         	          *      
   5         +      
   5   9      +      
   5         +                  =+      
   2   C      A+      
   2   ?      F+      
   5   	      Q+      
   2   [      U+      
   2   U      Z+      
   5         e+      
   2   z      i+      
   2   t      n+                  +      
   5   E      +                  +      
   2         +      
   2         +      
   5         +      
   2         +      
   2         +                  ,      
   5         ,                  /,      
   2         3,      
   2         8,      
   5   	      C,      
   2         G,      
   2         L,      
   5         W,      
   2         [,      
   2         `,                  ,      
   5   -      ,                  ,      
   2          ,      
   2         ,      
   5         ,      
   2   8      ,      
   2   2      ,                  ,      
   5   
      -            p      !-      
   2   Y      %-      
   2   Q      5-      
   2   }      9-      
   2   y      >-      
   5   	      I-      
   2         M-      
   2         R-      
   5         ]-      
   2         a-      
   2         -      
   5   n      -         /   @       -      
   3          -      
   2         -      
   2         -      
   5   ;      -      
   2         -      
   2         -      
   5   H      -      
   2         -      
   2         -            \      .            t      .                  7.         	          G.                  _.                  v.         	          .                  .                  .      
   2         .      
   2         .            -      .            =      .                  /                  $/                   1/                   E/         /   @       e/      
   5   ~       o/                   /      
   5   V      /      
   2   +      /      
   2   %      /      
   2   H      /      
   2   D      /      
   2   `      /      
   2   Z      /      
   5   q      /                   /      
   5   V      /      
   2         /      
   2   y      /      
   5         0      
   2         
0      
   2         0      
   2         0      
   2         "0      
   5   r      +0            `      J0      
   2         N0      
   2         S0      
   5         ]0      
   2   
	      a0      
   2         0      
   5   n      0         /   `       0      
   3   z       0      
   2   ?	      0      
   2   ;	      0      
   5   ;      0      
   2   R	      0      
   2   N	      0      
   5   H      0      
   2   e	      0      
   2   a	      0            L       1            d      1            }      41         	         D1                  \1                  s1         	         1                  1                  1      
   2   v	      1      
   2   t	      1                  1            -      1                  2                  2                    2                   32         /   `       S2      
   5         \2            P       s2      
   5   V      }2      
   2   	      2      
   2   ~	      2      
   2   	      2      
   2   	      2      
   2   	      2      
   2   	      2      
   5   ;
      2                   2      
   5   V      2      
   2   	      2      
   2   	      2      
   5         2      
   2   	      2      
   2   	      2      
   5          3      
   2   	      3      
   2   	      3      
   2   
      3      
   2   
      3      
   5         $3            
      C3      
   2   2
      G3      
   2   &
      o3      
   2   q
      s3      
   2   c
      x3      
   5   n      3         /          3      
   3   d       3      
   2   
      3      
   2   
      3      
   5   ;      3      
   2   
      3      
   2   
      3      
   5   H      3      
   2   
      3      
   2   
      3            l      3                  4         	         4                  )4                  A4                  ]4         	          m4                  4         	   @      4                  4                  4            )      4            
      4            8      5            [      5                  $5         	   8      15                   D5         /          d5      
   5   d      m5                  5      
   2   
      5      
   2   
      5      
   2   2      5      
   2   $      5      
   5   n      5         /          5      
   3   N       5      
   2   s      5      
   2   o      5      
   5   ;      5      
   2         5      
   2         6      
   5   H      6      
   2         6      
   2         !6            ,      .6            W      J6         	         Z6            g      r6            z      6                  6         	   H      6                  6         	         6                  6                  7                  $7                  B7                  O7                  \7                  m7         	   8      z7                   7         /          7      
   5   i      7            @	      7      
   2         7      
   2         7      
   2         7      
   2         7      
   5   n      7         /          8      
   3   8       8      
   2   4      8      
   2   0      #8      
   5   ;      ,8      
   2   G      08      
   2   C      58      
   5   H      L8      
   2   Z      P8      
   2   V      U8            	      b8            
      ~8         	   h      8            '
      8            :
      8            S
      8         	         8            c
      9         	         9            	      ,9            	      J9            	      X9            z	      v9            	      9            	      9            
      9         	   8      9                   9         /          9      
   5         9                  9      
   2   s      9      
   2   i      :      
   2         	:      
   2         :                   .:            -      L:            =      Z:                  o:      
   5   [      x:                  :      
   2         :      
   2         :      
   2         :      
   2         :      
   5   n      :         /         :            P      :            ]      ;            m      *;            I      H;                  U;                  b;                  s;         	   8      ;                   ;         /         ;      
   5   7      ;            0      ;      
   2         ;      
   2         ;      
   2   
      ;      
   2   
      ;      
   5   n      <         /   0      <            x      .<                  L<                  Z<            j      x<                  <                  <                  <                  <         	         <                   <         /   0      <                  <         	   8      <                   =         /   0      /=      
   5   R       :=                    Q=      
   5   V      s=      
   2   5
      w=      
   2   3
      }=      
   5         =      
   5         =            p      =      
   5   R      =            `      =      
   5   #      =      
   5   O
      >                  $>      
   2   C
      (>      
   2   ;
      2>                  M>      
   2   k
      Q>      
   2   c
      Z>      
   2   
      ^>      
   2   
      g>                  p>                  >      
   2   
      >      
   2   
      >      
   2   
      >      
   2   
      >            $      >         	          >                  >                  >      
   2   
      ?      
   2   
      ?                  ?                  0?      
   2   
      4?      
   2   
      9?                  U?         	          `?                         
   0                                "       
   6          &       
   6   &       *       
   6   O       .       
   6   r       2       
   6          6       
   6          :       
   6          >       
   6          H       
   6          M       
   6          R       
   6          W       
   6          \       
   6          a       
   6          f       
   6         k       
   6         p       
   6   )      u       
   6   8      z       
   6   G             
   6   P             
   6   \             
   6   e             
   6   p             
   6   u             
   6   }             
   6                
   6                
   6                
   6                
   6                
   6                
   6                
   6                              *                  H                  c                                    0                  O                  m            0                            4                    L             P       h                                                                         p                        $            `      8            p      L                  `                  t                                                                  0                                           0                  L                  l            P                  @	                  
                        4                  X            
                                    `                                                                        0       .symtab .strtab .shstrtab .rela.text .data .bss .rodata.str1.1 .rodata.str1.8 .rodata .rela.debug_info .debug_abbrev .debug_loclists .rela.debug_aranges .debug_rnglists .rela.debug_line .debug_str .debug_line_str .comment .note.GNU-stack .rela.eh_frame                                                                                         @       C                                   @                     x                          &                                                          ,                                                          1      2                     #                             @      2                                                 O                           D                              \                            z?                             W      @                     h                          h                      ~X                                   v                      \^      
                                                   Fl      0                                    @               +     0                                                 vl                                                          l                                         @               @+                                     0               y      !                                  0               !                                        0                     (                                                   '                                                          (      (                                   @               /                                                      P               7                 	                                                                               2                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           ELF          >                    7         @     @   1f     =tHGHtHH1H     1ff.     fSHG HGHtHHC    1HC    [@ =tHGHtHH1H     1ff.     fSHG HGHtHHC    1HC    [@ AUATUSH      AHHIL      H      H    	  Ao$oM    H   ID$H   I$    ID$       HEH   HE     HE    D       t1H[]A\A]f     X   tH    1H1    f    _   HHH    HD    H|$H5    HH1    xHt$_       vH5    _       H
      H5    H=             UHfSHH   HAo	H
.HL$0LD$0HL$HD$hHHD$HD$P)D$PHD$p    HD$     HD$HD$@    HD$8L$X   H|$    H|$     HE     HE    fH    tn      uߋ\$puD$PHĈ   []    HHH    HD    H|$H5    HH1    xHt$     H5        H
    +  H5    H=        f.     S   H<t9	<v2H   Ht	H   Hǃ       Hǃ       [D  H   Ht	H   Hǃ       Hǃ       ff.     @   1fD          UHx   SHH8Ƈ   HD$HD$HD$foD$HǇ          D$        uaf     H    t5      uߋl$  tQ    u      taH8[] X   tH    1H1    f.         uH
    j   H5    H=        H
    d   H5    H=        f     S   HƇ       u,@ H    t      u1[ X   tH    1H1    f.     H1Ҿ	   AHH	   0H1Ҿ
   !HH
   SHƇ   o   HFH   H    HF           t	1[D  X   tH    1H1    f.     SH   trƇ   oH   HFH   H    HF           t1H[@ X   tH    1H1    f.         _   HHH    HD    H|$H5    HH1    xHt$_       xH5    _           SH8HH0HD$Ht$HD$D$    HD$     HD$    uGH    t5      uߋD$t#      u      tH0[H
    {   H5    H=        ff.     @ S   HƇ       t1[fX   tH    1H1    fSH   tz    _   HHH    HD    H|$H5    HH1    xHt$_       H[ H5    _       H[@     _   HHH    HD    H|$H5    HH1    yH5    _       H[ff.     @ SHHHH0HD$Ht$HD$D$    HD$     HD$    u   D  H    tv      uߋ      ¸   t	H0[       tT    H|$H5    HHH    HD1    xHt$1    H0[H5    1    H
       H5    H=        fD  SH   trƇ   oH   HFH   H    HF           t1H[@ X   tH    1H1    f.         _   HHH    HD    H|$H5    HH1    xHt$_       xH5    _           UHHSHH8HD$Ht$HD$HD$     HD$    u   @ H             uۋ      tT$1H8[]f.              l$    HHH    HD؅u2H|$H1H5        x:Ht$    H8[]É    H|$HH5    H1    H5        H
       H5    H=        ff.     SH   trƇ   oH   HFH   H    HF           t1H[@ X   tH    1H1    f.         _   HHH    HD    H|$H5    HH1    xHt$_       xH5    _           UHSHH8HD$Ht$HD$D$    HD$     HD$    u   @ H             uۋ      tT$1H8[]f         l$    HHH    HD؅u2H|$H1H5        x:Ht$    H8[]É    H|$HH5    H1    H5        H
       H5    H=        ff.     SH      H    H  H       oo
   HFH   H    HF          HBH   H    HB    Ƈ       t1H[    X   tH    1H1        _   HHH    HD    H|$H5    HH1    xHt$_       H5    _       H
      H5    H=        ff.     fUfHH
SHH   HFoHT$0Ht$)D$PHD$hHCHD$HD$PHD$p    HD$     HD$HD$@    HL$0HD$8L$X       H|$    H|$     HE     HE    fH    tn      uߋ\$puD$PHĈ   []    HHH    HD    H|$H5    HH1    xHt$     H5        H
       H5    H=        f.     HIо	   1ff.      IHH	   ff.     fHIо
   1ff.      IHH
   }unknown opt.c CALLBACK_IS_NULL (l)   %s: server is not using fixed newstyle protocol: %s     server is not using fixed newstyle protocol     CALLBACK_IS_NULL (h->opt_cb.fn.context) option queued, ignoring state machine failure   %s: server replied with error to meta context request: %s       server replied with error to meta context request       nbd_internal_is_state_negotiating (get_next_state (h)) || nbd_internal_is_state_dead (get_next_state (h))       nbd_internal_is_state_ready (get_next_state (h))        %s: libnbd was compiled without TLS support: %s libnbd was compiled without TLS support nbd_internal_is_state_dead (get_next_state (h)) %s: failed to get response to opt_starttls request      failed to get response to opt_starttls request  %s: failed to get response to opt_extended_headers request      %s: failed to get response to opt_extended_headers request: %s  failed to get response to opt_extended_headers request  %s: failed to get response to opt_structured_reply request      %s: failed to get response to opt_structured_reply request: %s  failed to get response to opt_structured_reply request  CALLBACK_IS_NULL (h->opt_cb.fn.list)    %s: server replied with error to list request: %s       server replied with error to list request                               nbd_unlocked_aio_opt_list       aio_opt_meta_context_queries    opt_meta_context_queries        nbd_unlocked_opt_list           nbd_unlocked_opt_structured_reply                               nbd_unlocked_opt_extended_headers               nbd_unlocked_opt_starttls       nbd_unlocked_opt_info           nbd_unlocked_opt_go 3@       E                    s              :       :   Fint F       R       ^       j      v                                      &              (j       *       ,R       -:       F   G    R                 a       l             L  	    3      5#       6#   X      7X  	    (      F               F               F       "	       #	       $   2(C	5      E      F5      GR       E  :   '     H  V  H    	       	       	       	       
Z:           !      	          !      
j   	                  
          :   
 	    J             
J      :   x    Z  :   u   Z      d  d  n      x  x                        	                       n               "    Y                   o      	      
o       ^      h  h  r      |  |                                                 i    }                Y    m  &    0    :    D    N    X      o  	          !b        {c  2      
               W    :    c    :    o    :    	          	         :        "    05      7F        8F       9F       :F       ;
      <Z      =	       >  ( (  I  	     !}	      ~{       {         !	      	I       		      
   F   D  	  Q  .   {     D   F           !	      	       		      
   F     	  D         Z  !	      	       		      
   F     	  v   v            !	<      	i       		      
   F   d  	  v   {  d  .   D   o  <        !	      	       		      
   F     	  v   {    .   D           z  !		      	       		      
         !	W	      	k	       		      
   F   k	  	  v    W	      &	  	    4	      5{       6{      7{      8c      9c      :	      	  :   { 	    A
      B{       C{      Dc   	    JR
      K{       Lo      Mo   	    T
      U{       Vc      W	  
 	    [
      \{       ]o      ^o      _o   	    
      c       {      c  
 	          c    	    [      c       o      o      o  
 	    v      o    	          o    	          o       c      c      {      {      o   	     I      o       c      c      {      {      {   	    ~      o       o      {   	          o       c      c      {      o   	     )
      o       c      c      {      {      {   	    D
      {    	    l
      {       o   	    
      o    	    
       o       o   "    
      o       o   "    
      {       {   "    /      o   )len c   J                                                  	    
            
                                                                                 !    "    #    $    %    &    '    (    )    *    +    ,    -    .    /    0    1    2    3    4    5    6    7    8    9    :    ;    <    =    >    ?    @    A    B    C    D    E    F    G    H    I    J    K    L    M    N    O    P    Q    R    S    T    U    V    W    X    Y    Z    [    \    ]    ^    _    `    a    b    c    d    e    f /  K                                               	    (0  ptr (   len (.   cap (.        (  	    Gd      H	       Io   	    K  ptr K   len K.   cap K.    <      Kd  	    M  ptr Md   len M.   cap M.        M  2U1      Vn      W      XN      Y	      Zp	   	    8Te  fn [       \      ]  0 , 	      4[   str         9:      ,	      ?
   str         9:    ,	      :v   str    : E       e      7
      ;                       , i      )
       	   ;	      o       o      	{   L     
       !I      %~      #  Mi   N	
      "   )msg       {   O    
b      
{      &)
      &D
      *l
      *
          ,0  )hdr 	       	
    :  -      {      |	      	      
  Por E      )R
      b      c      o  3len o      c      -      o   c  =  :    0 $^      %      &   0L      M      N%      O%   
  
  0Q      R      Sd      T   Q    #`h      b{       h	      kE      n  8    p	  @    q	  Htls tF   P    u	  X    v  `    w	  h    x	  p    y	  x    |      }                  0      o      F                   W      1                        c      {      c      o      o       o      o      	      	      v          (    @  0    {  8    {  @    {  H    {  P      X      `    o  x      |    /                              		      
.       Q      
.       F         4req '=  !    (  "    )  "    ,  "    -
  "    40  "4pid 5	(  "    :	  "    ;	  "    >	  "    >  "    ?(  "    @  #4rp @  #    AF    #    D0  (#    E
.   @#    H
.   H#    K
.   P#    P^  X#    U  `#    ]J  h#    ^J  p#    cJ  x#    jJ  #    kJ  #    nF   #    qJ  #    r/  #    t  #    u  # "    (  )u    )ops     h  "    J      J       c      c  
    {      {      {       		  ()ids   0)cb 1  8      p    o  t    o  x   "    0x      y
       {
      }
      ~	)      
B       	)  ( O  4        	  .        4        Q  .   F               F   )         B       .  ;       
	       
	      
	         0   3fd 	F   3tls G       	    (      F        	  err F     "    (       F        	p	  )err 
F     <    <    v   v   = #    'F   X       #    :F   t       <      F      #        F    #    F     #  {   = R    v   #    	
    /   #    F       F    #    
    /   S    E
6  v   v      v    #    

  M  /   #    

  d  /       F                    h C          
    7          
    F          
    I          *           UUT:QTRQXR  p	        
F                    h 
;          
    >          
    A          *           UUT:Q0RTXQ      F                  5   h D          
    8          
    G          
    J          *           UUT9QTRQXR      F                     h <          
    ?          
    B          *           UUT9Q0RTXQ  >    F           x      "  h 2          opt (o          
    &          
    5          
    8          $    "  	             0"  _e F           %    v           &      H_r F                               !  U_           !  UHT	        Qs          t  "  U_ 
        t  U_T	                  X  O"  Us TQ         <  l"  Us T8            "  Us T0Q	         
          U	        T	        Q
R	             "  :    "      F           C      $  h /          
    E$          
    5          $    $  	             2$  _e F           %    v           &      h_r F                               #  U_           #  UhT	        Qs          t  $  U_ 
        t  U_T	                  <  O$  Us T8            y$  Us T0Q	         
          U	        T	        Q
R	          	     $  :    $      F                  .&  h ;          
    A               %  1_e F   %    v           &      h_r F                               %  U_           %  UhT	        Qs          t  %  U_ 
        t  U_T	                  <  &  Us T8 
           Us T0Q	              F                  '  h ;          
    A               H'  1_e F   %    v           &      h_r F                               &  U_           '  UhT	        Qs          t  &'  U_ 
        t  U_T	                  <  e'  Us T8 
           Us T0Q	              F                  s)  h 3          
    9          T        N       (  1_e F   %    v           &      h_r F                               M(  U_           x(  UhT	        Qs  
        t  U_T	          U    _e F           %    v           &      h_r F                               
)  U_           8)  UhT	        Qs          t  P)  U_ 
        t  U_T	           ?    F   )  @h 0       lF                  *  h l/          
    m5               *  1_e pF   %    pv           &    p  h_r pF                               B*  U_           m*  UhT	        Qs          t  *  U_ 
        t  U_T	                  <  *  Us T8 
           Us T0Q	          ?    ^F   +  @h ^-  V    _3       TF                  +  h T?          
    U3          
    VB          *        ,  UUT:QTRQ      KF                  ,  h K7          
    L:          *        ,  UUT:Q0RT      AF                  ,  h A@          
    B4          
    CC          *        ,  UUT9QTRQ      8F                  ,  h 88          
    9;          *        ,  UUT9Q0RT  >    F           f      O/  h .          opt  $o          
    !"          
    "1          5s $  5l %p	  ~5c &  $    _/  	             .  _e 0F           %    0v           &    0  ~_r 0F                               .  Us            F.  U~T	        Qv          t  ^.  Us  
        t  Us T	          -9>                  %       -.  J>                    .  Us T	                       /  Us TTQQR~X 
          U	        T	        Q
+R	             _/  :    O/  A    F           ,       /  
    	          err &D          h /             A    
F           3       !0  
    
	          
    
,v           h /           '    F           f      =2  (h +          .    A$          s   l 	  ~c   $    M2  	             }1  _e F           %    v           &      ~_r F                               1  Us            C1  U~T	        Qv          t  [1  Us  
        t  Us T	          W9>                  %       1  J>                    1  Us T	                    "  2  Us T~Q 
          U	        T	        QR	             M2  :    =2  B    F           ,       2  .    	          (err #D          h 2             B    F           3       3  .    	          .    )v           .    ;v           h 2           '    F           D      M5  (h 7          err F   c   @r F           $    ]5  	             4  _e F           6    v           7      _r F                               4  UT	        Qs          t  (4  Uv            @4  Uv            l4  UT	        Qs  
        t  Uv T	          /9>          %       4  +J>            4  Us T	                    $  4  Us T@         M          6  
          U	        T	        QR	             ]5  :   ! M5  '    F           D      7  (h 7          err F   c   @r F           $    ]5  	             6  _e F           6    v           7      _r F                               X6  UT	        Qs          t  p6  Uv            6  Uv            6  UT	        Qs  
        t  Uv T	          /9>          %       !7  +J>            7  Us T	                    .&  ?7  Us T@         M          6  
          U	        T	        QR	          '    F           
      y9  (h /          err F   Dc   Pr F           $    $  	             8  _e F           6    v           7      H_r F                               8  UHT	                 t  8  U0 
        t  U0T	          /9>          !       9  +J>            8  Us T	                    '  #9  Us TP         M          6  
          U	        T	        QR	          '    F           f       :  (h ,          Xr F   Cs)              K:  )          -s)                          1:  )          
           Us T0Q	          
        <  Us T8  Y9>          #       
+J>            :  Us T	             '    pF                  ;  (h p+          err rF   Lc s  Pr tF           $    M2  	        /9>          !       yO;  +J>            A;  Us T	                    )  m;  Us TP         M          6  
          U	        T	        Q{R	          '    YF           '      =  (h Y)          err [F   c \          r ]F           $    =  	        C*              ]<  +          *          -*                          ^<  +          *          
           Us T0Q	          
        <  Us T8  /9>          !       b4=  +J>            &=  Us T	                    M          6                      =  U	        T	        QjR	         
          U	        T	        QdR	             =  :    =  Z    PF                  9>  D    P	  U8err P!D  Ti RD           [    EF   U>  \h E%   '    ?F                  >  8h ?/  U '    7F           
       >  8h 7/  UD    77  T ]    ,        u       >  (h ,.           ^*          f       ?  *          +          -*                          ^?  +          *          
           Us T0Q	          
        <  Us T8  _s)          >       )          -s)                          @  )          
           Us T0Q	          
        <  Us T8   I ~  
 :;9I8  (    I   !I  H}  
 :;9I8   :;9I  	:;9  
H}  H }  
 :!;9I8  
 :!;9IB  7 I  
 :!;9I8  
 :!;9I  
 :;9I  & I   :!;9IB  I  4 :!;9IB  G I  ! I/  
 :;9I8  4 :!;9IB   1B  .?:!;9!'I@z  4 :!;9I  $ >  'I   <   U  !:;9  ":;9!  #.?:;9'I<  $4 I4  %4 :!;9IB  &4 :!;9I  '.?:!;9!'I@z  ( :!;9IB  )
 :;9I8  *H}  + 1  ,:!;9  -1RBX!YW  . :!;9IB  /1X!YW!  0:!;9!  14 :!;9!I!   2:;9  3
 :!;9I  4
 :!;9I8  54 :!;9I  64 :!;9!IB  74 :!;9!I  8 :!;9I  9! I/  ::!;9  ;:!;9  <.?:!;9!
'<  =   >.:!;9!'I@z  ?.?:!;9!'I !  @ :!;9I  A.:!;9!'I@|  B.:!;9!'I@|  C1RBUX!YW!  D :!;9I  E%  F$ >  G   H&   I'  J>I:;9  K>I:;9  L:;9  M
 I  N:;9  O:;9  P
 :;9I  Q:;9  R. ?:;9'I<  S.?:;9'<  T  UU  V :;9I  W1RBXYW  X4 :;9I  Y1XYW  Z.:;9'I@z  [.:;9'I   \ :;9I  ].?:;9'@|  ^.1@z  _.1@z   e            $$U$$U       $$T$$Q$$T       $$Q$$R$$Q       $$R$$X$$R     $$U$$U       $$T$$R$$T       $$Q$$X$$Q     $$U$$U       $$T$$Q$$T       $$Q$$R$$Q       $$R$$X$$R     $$U$$U       $$T$$R$$T       $$Q$$X$$Q               USUSUUS               T]T]TT]         QQQQ               R\R\RR\               XVXVXXV    __     SS     PP               USUS U  U !S             TT T  T  T !T             QQ Q  Q  Q !Q   _     S       P  P             USUSUU         TTTT   S     PP             USUSUU         TTTT   S     PP         UUUU         TTTT   S   P    __     SS     PP             
USUSUU         
TTTT   S     PP     UU       TQT       QRQ     UU       TRT     UU       TQT       QRQ     UU       TRT         USUS     TT     QQ             RVRVRV    SS     VV     PP  S       USU     TT      USU       UUU       TTT      UUU         !"U""S"#U##S             !!T!"V""T"#V##T##V    "#S##S     ##V##V     ##P##P  ""S       PfUf{S{|U     PgTg|T      PfUf{S{|U       /U/8U8CU       0T08T8CT       0Q08Q8CQ      /U/8U8CU             USUSUS             P0p 00	0     VV     SS     PP             USUSUS             P0p 00	0     VV     SS     PP             USUSUS         P00	0    00   Q     PP         USUS      USS   S         USUS       P00         		U	
S

U
S      		        P	
        H
        H     

0
0    		@

@      		U		S

S   

@   

S   U         USUS         
U

S

U

S     
T

T   

T   

S         USUS   S ,                     s                                 						

             "###        
                                                                                                                                                 	         ./.u
Y  N J / , 
>=  J .  ,     X.u
Y  N J / , 
>=  J .  ,     X.X h[}/!uX
Z/: rfXX 	J 	 
 
 
 
 
 4~'KItZY\X ~	K	
WJNK 	J 	y 
{ 
 
 
 
 z.~)!s=L8< L     X   d  #uu w}Xu}'X}	
WKeK vXtXx~  z"(~ ~X<vX}	
W . J
=tX 	        	
=<XX 	        
=tX 	        	
=<XX 	         =uYXX Y   <dxYus!XX
Z/ wXX 	J 	 
 
~"rvYWWZRt	
W3 
XX z .#U=vX Y   <:nYXX 	J 	 
t 
 
 
 
 
oXXX 
J 
 
 
 
 
}"rvYWWZ	
W 	W
JXyJ"t 	J 	rJX  
z  
 
 
 
 +%Yus!XX
Z/ wXX 	J 	 
 
~"rYW/Z	
 	K	Xy/J J X 	J 	rJX z<  
. 
 
 
 
 ++Yus!XX
Z/ wXX 	J 	 
 
~"rYWWZ~	
	K	XyJ/J J X 	J 	rJX z<  
. 
 
 
 
 ++Y fLH!U!uX
Z/ uJXX 	J 	 
s 
 
.   t~!I?q0\X ~	K	
WJNK 	J 	y 
{ 
 
 
 
 z.)
gX.X 	        

=<<XX 	        	
gX.X 	        

=<<XX socklen_t export_name chunk size_t sa_family sockaddr_in6 STATE_NEWSTYLE_OPT_LIST_RECV_REPLY_PAYLOAD __kind meta_valid opt_cb context_complete uri_allow_local_file __ssize_t sockaddr_at ai_addrlen STATE_NEWSTYLE_OPT_STRUCTURED_REPLY_RECV_REPLY string_vector sin_family nrqueries __pthread_list_t sin_addr bs_hdr_32 STATE_NEWSTYLE_OPT_META_CONTEXT_CHECK_REPLY nbd_internal_debug STATE_CONNECT_TCP_START nbd_fixed_new_option_reply_server cmd_connect_socket ai_flags opt_current __next block_minimum __data sockaddr_x25 ai_next __prev state sockaddr_inarp STATE_NEWSTYLE_OPT_EXPORT_NAME_CHECK_REPLY nbd_chunk_block_status_32 __PRETTY_FUNCTION__ uri_allow_tls __pthread_internal_list type STATE_NEWSTYLE_OPT_STRUCTURED_REPLY_CHECK_REPLY __owner GNU C17 12.2.0 -mtune=generic -march=x86-64 -g -O2 -fasynchronous-unwind-tables nbd_chunk_offset_data ai_canonname rlen callback ssize_t sbuf ss_family meta_contexts _context STATE_NEWSTYLE_OPT_META_CONTEXT_SEND extent32 nbd_unlocked_opt_list __uint8_t STATE_NEWSTYLE_SEND_CFLAGS sockaddr_dl external_event STATE_NEWSTYLE_FINISHED wbuf exportsize cmd_issue sock bs_hdr_64 queries private_data long int STATE_REPLY_CHECK_REPLY_MAGIC connaddrlen initialized reply_state name_desc STATE_NEWSTYLE_OPT_EXPORT_NAME_START STATE_NEWSTYLE_OPT_META_CONTEXT_PREPARE_FOR_REPLY gflags tls_negotiated error nbd_internal_get_error_context STATE_NEWSTYLE_OPT_STARTTLS_TLS_HANDSHAKE_READ nbd_fixed_new_option_reply_info_export nbd_unlocked_opt_info bs_cooked __nusers nbd_old_handshake hname payload_left pread_initialize STATE_NEWSTYLE_PREPARE_OPT_ABORT nbd_list_callback offset_data signed char STATE_NEWSTYLE_OPT_STRUCTURED_REPLY_RECV_REPLY_PAYLOAD uint8_t maximum STATE_REPLY_CHUNK_REPLY_RESYNC sockaddr_iso server nbd_internal_run context nbd_unlocked_aio_opt_set_meta_context __pthread_mutex_s extent64 STATE_CLOSED nbd_unlocked_opt_list_meta_context_queries nbd_chunk_callback STATE_NEWSTYLE_OPT_LIST_RECV_REPLY unsigned char STATE_NEWSTYLE_OPT_GO_RECV_REPLY __spins result context_helper status_flags querylist sin6_scope_id STATE_NEWSTYLE_OPT_META_CONTEXT_SEND_NRQUERIES _Bool structured nbd_unlocked_opt_set_meta_context_queries value nbd_internal_is_state_connecting char sockaddr_eon __ss_align nbd_context_callback nbd_internal_set_querylist connect_errno __uint16_t sockaddr_in STATE_NEWSTYLE_OPT_STARTTLS_CHECK_REPLY sin_port nbd_unlocked_poll cmd_connect_sockaddr flags STATE_REPLY_FINISH_COMMAND STATE_NEWSTYLE_OPT_EXTENDED_HEADERS_START cmd_connect_tcp nbd_extent STATE_MAGIC_START cmds_to_issue sin6_port simple __socklen_t STATE_REPLY_CHUNK_REPLY_FINISH request_sr rbuf sin_zero cmds_done oldsock nbd_structured_reply unique tls_username STATE_NEGOTIATING cmds_done_tail nbd_internal_is_state_negotiating nbd_internal_is_state_ready STATE_DEAD opt_meta_context_queries STATE_REPLY_CHUNK_REPLY_RECV_OFFSET_DATA_DATA export STATE_REPLY_CHUNK_REPLY_START in_addr_t STATE_NEWSTYLE_OPT_GO_SEND_NRINFOS nbd_unlocked_opt_list_meta_context STATE_CONNECT_TCP_CONNECT __lock context_visitor STATE_NEWSTYLE_OPT_STARTTLS_START STATE_CONNECT_TCP_NEXT_ADDRESS nbd_unlocked_aio_opt_list payload_maximum STATE_NEWSTYLE_OPT_STARTTLS_RECV_REPLY_PAYLOAD cflags STATE_NEWSTYLE_OPT_GO_SEND_INFO nbd_unlocked_aio_opt_extended_headers STATE_REPLY_SIMPLE_REPLY_START STATE_CONNECT_TCP_CONNECTING STATE_REPLY_CHUNK_REPLY_RECV_ERROR_MESSAGE nbd_unlocked_get_opt_mode cmd_connect_sa block_preferred __uint64_t nbd_chunk_error long unsigned int reply list_visitor bs_raw nbd_internal_free_option chunk_payload STATE_REPLY_CHUNK_REPLY_RECV_OFFSET_HOLE new_handshake STATE_REPLY_SIMPLE_REPLY_RECV_READ_PAYLOAD disconnect_request option nbd_internal_set_last_error STATE_NEWSTYLE_OPT_GO_RECV_REPLY_PAYLOAD nbd_unlocked_opt_go nbd_fixed_new_option_reply_meta_context ai_family nbd_unlocked_aio_opt_info ai_socktype pending nbd_unlocked_aio_opt_go querynum uintptr_t __size nbd_extended_reply in_flight sockaddr_ns payload opt_mode STATE_NEWSTYLE_OPT_EXTENDED_HEADERS_RECV_REPLY STATE_REPLY_START STATE_REPLY_CHUNK_REPLY_RECV_OFFSET_DATA STATE_NEWSTYLE_OPT_META_CONTEXT_PREPARE_NEXT_QUERY nbd_fixed_new_option_reply export_name_reply argv STATE_NEWSTYLE_OPT_EXTENDED_HEADERS_SEND nbd_completion_callback nbd_unlocked_aio_opt_starttls nbd_unlocked_opt_set_meta_context sockaddr_ipx uri_allow_transports sact_tmpdir STATE_NEWSTYLE_OPT_META_CONTEXT_SEND_EXPORTNAMELEN send chunks_received description __uint32_t __u6_addr8 protocol long long int context_id option_reply uint32_vector request_meta_contexts cmds_in_flight connaddr replylen pad_ bytes_received aio_opt_meta_context_queries structured_replies cmds_to_issue_tail storage hints STATE_NEWSTYLE_START nbd_unlocked_opt_structured_reply STATE_ISSUE_COMMAND_PREPARE_WRITE_PAYLOAD complete strerror notify_write tls_certificates count STATE_NEWSTYLE_OPT_STARTTLS_TLS_HANDSHAKE_DONE STATE_REPLY_CHUNK_REPLY_RECV_ERROR STATE_ISSUE_COMMAND_PAUSE_WRITE_SHUTDOWN extended_headers cmd_create unsigned int extended pthread_mutex_t STATE_NEWSTYLE_OPT_STARTTLS_SEND STATE_CONNECT_START compact nbd_unlocked_opt_starttls list_helper nbd_unlocked_aio_opt_list_meta_context_queries meta_context pid_t cookie shut_writes STATE_ISSUE_COMMAND_START export_name_len meta_vector preferred STATE_NEWSTYLE_OPT_LIST_CHECK_REPLY STATE_NEWSTYLE_RECV_GFLAGS offset STATE_NEWSTYLE_SEND_OPT_ABORT list debug_callback STATE_NEWSTYLE_OPT_META_CONTEXT_SEND_QUERYLEN block_maximum in6_addr __count bytes_sent nbd_simple_reply asprintf wlen recv nbd_new_handshake narrow socket_ops STATE_START _errp ai_addr opaque wflags nbd_unlocked_opt_extended_headers nbdmagic minimum sin6_family __pid_t tls_psk_file STATE_CONNECT_CONNECTING STATE_REPLY_RECV_STRUCTURED_REMAINING public_state info STATE_NEWSTYLE_OPT_EXPORT_NAME_SEND STATE_NEWSTYLE_OPT_META_CONTEXT_SEND_EXPORTNAME sact_name nbd_chunk_offset_hole sockaddr_un STATE_OLDSTYLE_CHECK STATE_OLDSTYLE_RECV_REMAINING long long unsigned int sa_family_t command __list request_meta length uint16_t STATE_NEWSTYLE_OPT_LIST_SEND STATE_NEWSTYLE_OPT_GO_START err_msg nbd_unlocked_aio_opt_list_meta_context STATE_NEWSTYLE_OPT_META_CONTEXT_START wait_for_option optlen notify_read sa_data tls_verify_peer nbd_debug_callback STATE_NEWSTYLE_OPT_STARTTLS_TLS_HANDSHAKE_WRITE debug STATE_REPLY_CHUNK_REPLY_RECV_BS_ENTRIES nbd_unlocked_opt_abort sockaddr addrinfo __assert_fail STATE_NEWSTYLE_OPT_STRUCTURED_REPLY_START hostname nbd_export_name_option_reply version nbd_handle nbd_fixed_new_option_reply_info_name_or_desc STATE_NEWSTYLE_CHECK_GFLAGS nbd_extent_callback list_complete bs_count STATE_READY nbd_internal_is_state_dead zeroes block_size __align in_addr STATE_NEWSTYLE_OPT_STRUCTURED_REPLY_SEND completion in_write_payload STATE_ISSUE_COMMAND_PAUSE_SEND_REQUEST STATE_MAGIC_CHECK_MAGIC offset_hole STATE_NEWSTYLE_OPT_STARTTLS_RECV_REPLY xcreds name port STATE_REPLY_CHUNK_REPLY_RECV_ERROR_TAIL chunks_sent nbd_unlocked_aio_opt_structured_reply nbd_block_descriptor_32 __ss_padding sockaddr_storage short int nbd_extent64_callback nbd_new_option align_ uint64_t wide nbd_request STATE_NEWSTYLE_OPT_GO_SEND_EXPORTNAMELEN STATE_ISSUE_COMMAND_SEND_WRITE_SHUTDOWN STATE_NEWSTYLE_OPT_META_CONTEXT_RECV_REPLY command_cb __elision in_write_shutdown STATE_ISSUE_COMMAND_SEND_REQUEST STATE_NEWSTYLE_OPT_EXPORT_NAME_RECV_REPLY tls_hostname __val sin6_addr request_eh STATE_ISSUE_COMMAND_SEND_WRITE_PAYLOAD STATE_NEWSTYLE_OPT_GO_CHECK_REPLY nbd_request_ext tls_shut_writes socket __int64_t reply_cmd nbd_unlocked_aio_opt_set_meta_context_queries nbd_chunk_block_status_64 STATE_NEWSTYLE_OPT_EXPORT_NAME_SEND_EXPORT canonical_name strict STATE_NEWSTYLE_OPT_META_CONTEXT_RECV_REPLY_PAYLOAD STATE_CONNECT_COMMAND_START s_addr sockaddr_ax25 STATE_MAGIC_RECV_MAGIC __u6_addr16 STATE_NEWSTYLE_SEND_OPTION_SHUTDOWN reply_header uint32_t STATE_NEWSTYLE_OPT_GO_SEND nrinfos nbd_block_descriptor_64 sact_sockpath STATE_NEWSTYLE_OPT_LIST_START full_info free request_block_size get_fd short unsigned int magic nbd_fixed_new_option_reply_info_block_size nbd_unlocked_set_opt_mode user_data eflags STATE_NEWSTYLE_OPT_EXTENDED_HEADERS_CHECK_REPLY nbd_unlocked_aio_opt_abort STATE_NEWSTYLE_OPT_EXTENDED_HEADERS_RECV_REPLY_PAYLOAD pskcreds int64_t STATE_CONNECT_SA_START STATE_OLDSTYLE_START data_seen __u6_addr32 go_complete STATE_ISSUE_COMMAND_PAUSE_WRITE_PAYLOAD STATE_REPLY_CHUNK_REPLY_RECV_BS_HEADER sin6_flowinfo STATE_ISSUE_COMMAND_FINISH next STATE_NEWSTYLE_OPT_META_CONTEXT_SEND_QUERY data close session cmd_connect_command ai_protocol STATE_NEWSTYLE_OPT_GO_SEND_EXPORT in_port_t old_handshake lock STATE_REPLY_RECV_REPLY compl __in6_u opt.c /tmp/libnbd/lib /tmp/libnbd/lib /usr/lib/gcc/x86_64-linux-gnu/12/include /usr/include/x86_64-linux-gnu/bits /usr/include/x86_64-linux-gnu/sys /usr/include /usr/include/netinet ../include ../common/utils opt.c opt.c stddef.h types.h types.h stdint-intn.h thread-shared-types.h struct_mutex.h pthreadtypes.h stdint-uintn.h stdint.h stdatomic.h socket.h sockaddr.h in.h netdb.h libnbd.h nbd-protocol.h states.h string-vector.h internal.h string.h stdio.h unlocked.h assert.h  GCC: (Debian 12.2.0-14+deb12u1) 12.2.0         zR x                      0       3    [L    H       ,    Ch      d       3    [L    |       ,    Ch   8          x   BBA A(D@
(A ABBJ (          f   AHJ
AAA          u    AA
F             
          4             (   H      '   AMGP
CAD    t      f    AC
D                                                                            f    AA
F                 AD M
AE     (          AN@
AA    L      >    A\
C0   h          AD Y
FDU
FERF ,         
   AN@t
ADL
FA                 AD M
AE 4         D   AHGPs
AAK[
FAA    (          AD M
AE 4   L      D   AHGP{
AAC[
FAA          C   AD 
AH (         f   AOJ
AAA                                                                                                                                                                  3             P       ,       .            3       >            ,                                                   O            x      l                     q                      v                      {      8                                                              h               S     p      f                                                     @                                        0                                       8                                                                            h                                                   *     8              0                   6                   <     P              B           "       X                   ^                   d                   j           "                               @                   h                                     `                                                               
                                                                                                                                                                                                                                        %                     .                     J                     X                     j                               u           `      
           p                       '                                                )                     E          f       \                      0                 @                 P                 `      f                        (                 >          >       Y                 w    	      
          
                       D           
                 
      D      !    @      C      ;          f      Q                  x                      @                 `              opt.c go_complete list_visitor list_complete context_visitor context_complete aio_opt_meta_context_queries .LC5 .LC0 .LC1 .LC2 __PRETTY_FUNCTION__.1 .LC3 .LC4 .LC7 .LC8 __PRETTY_FUNCTION__.2 .LC6 __PRETTY_FUNCTION__.8 .LC10 .LC9 __PRETTY_FUNCTION__.7 .LC11 .LC12 .LC14 .LC15 __PRETTY_FUNCTION__.6 .LC13 .LC16 .LC17 .LC18 __PRETTY_FUNCTION__.5 .LC19 .LC20 .LC21 __PRETTY_FUNCTION__.4 __PRETTY_FUNCTION__.0 .LC22 .LC23 .LC24 __PRETTY_FUNCTION__.3 nbd_internal_set_querylist nbd_internal_run nbd_internal_debug nbd_internal_get_error_context strerror asprintf nbd_internal_set_last_error __assert_fail nbd_unlocked_poll nbd_internal_is_state_connecting nbd_internal_free_option nbd_unlocked_set_opt_mode nbd_unlocked_get_opt_mode nbd_unlocked_opt_go nbd_internal_is_state_negotiating nbd_internal_is_state_dead nbd_internal_is_state_ready nbd_unlocked_opt_abort nbd_unlocked_opt_list_meta_context nbd_unlocked_opt_list_meta_context_queries nbd_unlocked_opt_set_meta_context nbd_unlocked_opt_set_meta_context_queries nbd_unlocked_aio_opt_go nbd_unlocked_aio_opt_info nbd_unlocked_opt_info nbd_unlocked_aio_opt_abort nbd_unlocked_aio_opt_starttls nbd_unlocked_opt_starttls nbd_unlocked_aio_opt_extended_headers nbd_unlocked_opt_extended_headers nbd_unlocked_aio_opt_structured_reply nbd_unlocked_opt_structured_reply nbd_unlocked_aio_opt_list nbd_unlocked_opt_list nbd_unlocked_aio_opt_list_meta_context nbd_unlocked_aio_opt_list_meta_context_queries nbd_unlocked_aio_opt_set_meta_context nbd_unlocked_aio_opt_set_meta_context_queries               6            7                        8            9                        :            
            ;   (         <   9            C         <   L         .          X            _            d         =   )         >   9         ?   X         9   g            p         :   |                     ;            <                        <            .   <                                        =            7            >            ?            D            E   D            P         8   a         F   l         .   ,      x                                 =            .   ,                                       =            7            >            ?                        8            7                        8            7   4            @         8   Q         9   c            l         :   x         
            ;            <                        <            M   	         >            ?   0         D   ?         E   U         .         a            h            m         =            7                        8            9                        :               	         ;   	         <   +	            5	         <   I	         9   [	            d	         :   p	         
   }	         ;   	            	         <   	         P   
         >   
         ?    
         D   ?
         E   H
         9   T
            a
            l
         ;   |
         <   
            
         <   
         .          
            
             
         =            7   $            0         8   A         9   S            \         :   h         
   u         ;            <                        <            R            >   
         ?            D   G         E   X         9   e            ~         !            ;            <            :            "            ;            #            <            .                                            =   C
         7   d
            p
         8   
         9   
            
         :   
         
   
         ;   
         <   
            
         <   &         T   A         >   U         ?   d         D            E            9                        %            ;            <            :            &            ;            '            <            .   |       $            +             0         =            7                        8            9                        :   &         
   3         ;   F         <   T            ^         <   g         .   s            z         *            =            V   I         >   Y         ?   x         9                        :            +            ;            <            ,            <            .   \                                        =          
   0           
       
   4                
   5                  
   5                               *       
   3           /       
   4          =       
   4   s
      U       
   4   n      a       
   4   X      m       
   4                
   4                
   4                
   4   V             
   4   I             
   4                
   4   D             
   4                
   4   9             
   4                
   4   X
             
   4               
   4                
   4   	      )      
   4         5      
   4   f      A      
   4          O      
   4         Y      
   4         f      
   4   
      s      
   4               
   4               
   4               
   4               
   4   1            
   4               
   4               
   4   e             
   4               
   4               
   4   7            
   4               
   4   &      )      
   4         F      
   4   l      X      
   4         d      
   4   R      p      
   4   o      |      
   4   z            
   4               
   4   8            
   4               
   4                 
   4   #            
   4               
   4   #             
   4               
   4   3      #      
   4   s      0      
   4   &      =      
   4         e      
   4          y      
   4   
            
   4               
   4               
   4    	            
   4               
   4   4	            
   4   (            
   4   6
            
   4   -             
   4         !      
   4   	      /      
   4          =      
   4         K      
   4         i      
   4         }      
   4               
   4               
   4   J            
   4               
   4         c      
   4   P      o      
   4         |      
   4               
   4   U!            
   4   D            
   4   2            
   4   @             
   4   (            
   4   !      )      
   4         6      
   4         D      
   4         R      
   4         `      
   4   '!      n      
   4          |      
   4               
   4   K            
   4               
   4   K            
   4   d	            
   4   	            
   4   ]            
   4   f            
   4         O      
   4   a      d      
   4   ]      q      
   4   f      ~      
   4               
   4   _            
   4   ]            
   4   f            
   4                
   4   $            
   4   ]      "      
   4   f      /      
   4         o      
   4   x            
   4   ]            
   4   f            
   4               
   4   N            
   4   ]       	      
   4   f      
	      
   4         	      
   4   +      0	      
   4   ]      =	      
   4   f      J	      
   4         q	      
   4         }	      
   4         	      
   4         	      
   4         	      
   4   5      	      
   4         	      
   4   p      	      
   4         	      
   4   h      	      
   4         
      
   4         
      
   4         
      
   4   d      +
      
   4         8
      
   4   ;      E
      
   4         S
      
   4         `
      
   4   5      m
      
   4   p      z
      
   4         
      
   4         
      
   4         
      
   4   ;      
      
   4   
      
      
   4         
      
   4         
      
   4   T      
      
   4   5      
      
   4   p      
      
   4   /            
   4   T            
   4   !      '      
   4   T      4      
   4         A      
   4   j      N      
   4         \      
   4         i      
   4   N      w      
   4               
   4   f            
   4               
   4               
   4   d	            
   4               
   4   !            
   4               
   4               
   4               
   4               
   4   d	            
   4         "      
   4   !      /      
   4         <      
   4         J      
   4   D      W      
   4         d      
   4   0      q      
   4   !            
   4   Q
            
   4               
   4   d	            
   4               
   4   !            
   4   K            
   4   -            
   4               
   4   d	            
   4         
      
   4   !      
      
   4         
      
   4   K      *
      
   4   5      7
      
   4         E
      
   4         R
      
   4         _
      
   4   K      m
      
   4   T      z
      
   4   f      
      
   4         
      
   4   K      
      
   4         
      
   4   \      
      
   4   f      
      
   4         
      
   4         
      
   4   K      
      
   4               
   4   c
            
   4   0      0      
   4         B      
   4         H      
   4         N      
   4         T      
   4   z      Z      
   4         `      
   4         f      
   4         l      
   4         r      
   4   
       x      
   4   	      ~      
   4               
   4   X            
   4   !             
   4               
   4               
   4   (            
   4               
   4   \            
   4               
   4               
   4   |            
   4   |            
   4   <            
   4   	            
   4   U            
   4   7            
   4               
   4   	            
   4   6            
   4   g            
   4               
   4   w            
   4               
   4               
   4                
   4   U            
   4                
   4         &      
   4         ,      
   4         2      
   4   }      8      
   4   	      >      
   4         D      
   4         J      
   4          P      
   4         V      
   4         \      
   4         b      
   4   ;      h      
   4   x      n      
   4   x      t      
   4         z      
   4   3!            
   4   Z            
   4   r            
   4               
   4   ^            
   4               
   4               
   4   Y            
   4   v            
   4   X            
   4   )            
   4               
   4   [            
   4   t            
   4   :             
   4   t            
   4   
            
   4               
   4   >            
   4               
   4   z
            
   4               
   4   4            
   4   7      
      
   4   1            
   4   _            
   4               
   4   X       "      
   4         (      
   4         .      
   4          4      
   4         :      
   4   r!      @      
   4   w      F      
   4   !      L      
   4         R      
   4   
      X      
   4   2      ^      
   4         d      
   4         j      
   4         p      
   4         v      
   4   
      |      
   4   
            
   4                
   4   m            
   4               
   4   
            
   4   j	            
   4   
            
   4   )            
   4   	            
   4                
   4               
   4   K            
   4   O	            
   4   	            
   4   !            
   4   9
            
   4               
   4   @            
   4          1      
   4          =      
   4         J      
   4         W      
   4   f      e      
   4   ^            
   4   ^            
   4   ~            
   4   ~            
   4               
   4          
      
   4                
   4         %      
   4         2      
   4         K      
   4         X      
   4         o      
   4               
   4   T            
   4               
   4         	      
   4   +            
   4         !      
   4         -      
   4         9      
   4         O      
   4   q      \      
   4   V      s      
   4               
   4               
   4   !            
   4   b            
   4   	            
   4   >            
   4   c            
   4   0            
   4               
   4   
            
   4   s      &      
   4   =      2      
   4   p      >      
   4   1      J      
   4   O      V      
   4   0      z      
   4   V            
   4   s            
   4   _!            
   4   
            
   4   ;            
   4               
   4   
            
   4               
   4   k      	      
   4               
   4   T      !      
   4   
      F      
   4         R      
   4   c      g      
   4         s      
   4   z            
   4               
   4               
   4   z            
   4               
   4   $            
   4               
   4               
   4   m!            
   4   a            
   4   
             
   4         ,      
   4         9      
   4         F      
   4   m
      S      
   4         `      
   4         m      
   4         z      
   4   :            
   4   &
            
   4   >            
   4               
   4               
   4               
   4                
   4   ^            
   4               
   4   w             
   4         	      
   4               
   4         #      
   4         0      
   4   5      =      
   4   p      J      
   4         W      
   4   H
      d      
   4         q      
   4   ,      ~      
   4               
   4   -            
   4   O            
   4   !            
   4   f
            
   4   9            
   4               
   4               
   4               
   4   g             
   4         
      
   4               
   4   G      '      
   4         4      
   4         A      
   4   l       N      
   4   }      [      
   4   J      h      
   4   1
      u      
   4   X            
   4   0            
   4   ^            
   4               
   4   n            
   4                
   4   %            
   4               
   4               
   4   1            
   4         '      
   4         5      
   4         C      
   4         Q      
   4   "      _      
   4         z      
   4               
   4               
   4               
   4               
   4               
   4   
            
   4               
   4   	            
   4               
   4               
   4   ?
            
   4   
      "      
   4   @      0      
   4   $      >      
   4         L      
   4   (      Z      
   4         i      
   4               
   4   /            
   4                
   4   d	            
   4               
   4   !            
   4               
   4               
   4    !             
   4         .      
   4   6       <      
   4   0      P      
   4         ]      
   4   c      k      
   4         y      
   4               
   4               
   4   (            
   4   !      Q      
   4   !      _      
   4         m      
   4         {      
   4   I
            
   4               
   4               
   4               
   4               
   4               
   4         !      
   4   g      =      
   4         Y      
   4         u      
   4   B            
   4               
   4   U            
   4   6            
   4   y            
   4   =	            
   4   
            
   4         7      
   4         N      
   4   
      e      
   4   .      o            `            
   1                
   1                
   4   Y            
   1   (             
   1   "             
   4               
   1   G             
   1   A             
   4   !            
   1   f             
   1   `                   s            
   4                     @      8      
   1          <      
   1          A      
   4         L      
   1          P      
   1          U      
   4         `      
   1          d      
   1          i            R            
   4                                  
   1                
   1                
   4   Y            
   1                
   1                
   4               
   1               
   1               
   4   !            
   1   -             
   1   '                   3      6       
   4         @                    `       
   1   J      d       
   1   F      i       
   4         t       
   1   b      x       
   1   \      }       
   4                
   1                
   1   {                                
   4                                    
   1                
   1                
   1         !      
   1         !      
   4   Y      !      
   1   .      !      
   1   &      !      
   4         %!      
   1   _      )!      
   1   Q      .!      
   4         9!      
   1         =!      
   1         B!      
   4   n      L!         .           U!      
   2          h!      
   1         l!      
   1         q!      
   4         |!      
   1         !      
   1         !      
   4         !      
   1         !      
   1         !                  !                   !                  !         	           !            ,      "            G      &"         	   8       1"                  P"                  m"                  "         	          "            h      "         	   h       "                   "         .           "      
   4         "            @      #      
   1   (      #      
   1         #      
   4         '#      
   1   l      +#      
   1   `      0#      
   4         ;#      
   1         ?#      
   1         D#      
   4   n      N#         .           W#      
   2          j#      
   1         n#      
   1         s#      
   4         ~#      
   1         #      
   1         #      
   4         #      
   1         #      
   1         #                  #                  #            7      #         	           #            J      $            b      ($         	   8       3$                  P$                  p$         	          z$                  $         	   @      $                   $         .           $      
   4         $             
      $      
   1         $      
   1   	      %      
   4         %      
   1   N      %      
   1   F      %      
   2          +%      
   4         6%      
   1   s      :%      
   1   q      ?%      
   4         X%      
   1         \%      
   1   {      a%            
      n%            
      %            
      %         	           %            
      %            
      %         	   8       %            G
      &            t
      $&         	          /&      
   4         9&            
      Y&      
   1         ]&      
   1         b&      
   4         m&      
   1         q&      
   1         v&      
   2   m       &      
   4         &      
   1         &      
   1         &      
   4         &      
   1         &      
   1          &            E      &            `      &            y      &         	           '                  ''                  >'         	   8       I'                  f'            4      '         	          '      
   4   w      '                  '      
   1         '      
   1         '      
   4         '      
   1   F      '      
   1   >      '            H	      '      
   4         '      
   1   k      (      
   1   i      (      
   4          (      
   1   u      $(      
   1   s      )(            M	      6(            h	      N(            	      i(         	           y(            	      (         	   8       (      
   2   W       (      
   1         (      
   1   }      (      
   4         (      
   1         (      
   1         (      
   4         (      
   1         (      
   1         (                  (                  )            	      ))         	         9)            	      Q)            9	      h)         	         t)      
   4         )      
   4         )                  )      
   1         )      
   1         )      
   4         )      
   1         )      
   1         )      
   2   L       )      
   4         )      
   1   $      )      
   1   "      )      
   4         *      
   1   0      *      
   1   ,      *            U      +*            p      C*                  ^*         	           n*                  *                  *         	   8       *                  *            D      *         	          *      
   4         +      
   4         +      
   4   I      +            P      =+      
   1   C      A+      
   1   ?      F+      
   4   Y      Q+      
   1   [      U+      
   1   U      Z+      
   4         e+      
   1   z      i+      
   1   t      n+            `      +      
   4         +            @      +      
   1         +      
   1         +      
   4         +      
   1         +      
   1         +            O      ,      
   4   6      ,            0      /,      
   1         3,      
   1         8,      
   4   Y      C,      
   1         G,      
   1         L,      
   4         W,      
   1         [,      
   1         `,            @      ,      
   4   }      ,                   ,      
   1          ,      
   1         ,      
   4         ,      
   1   8      ,      
   1   2      ,            /      ,      
   4   
      -            p      !-      
   1   Y      %-      
   1   Q      5-      
   1   }      9-      
   1   y      >-      
   4   Y      I-      
   1         M-      
   1         R-      
   4         ]-      
   1         a-      
   1         -      
   4   n      -         .   @       -      
   2          -      
   1         -      
   1         -      
   4         -      
   1         -      
   1         -      
   4         -      
   1         -      
   1         -            \      .            t      .                  7.         	          G.                  _.                  v.         	          .                  .                  .      
   1         .      
   1         .            -      .            =      .                  /                  $/                   1/                   E/         .   @       e/      
   4   ~       o/                   /      
   4         /      
   1   +      /      
   1   %      /      
   1   H      /      
   1   D      /      
   1   `      /      
   1   Z      /      
   4         /                   /      
   4         /      
   1         /      
   1   y      /      
   4         0      
   1         
0      
   1         0      
   1         0      
   1         "0      
   4         +0                  J0      
   1         N0      
   1         S0      
   4         ]0      
   1   
	      a0      
   1         0      
   4   n      0         .   `       0      
   2          0      
   1   ?	      0      
   1   ;	      0      
   4         0      
   1   R	      0      
   1   N	      0      
   4         0      
   1   e	      0      
   1   a	      0            |       1                  1                  41         	   h      D1                  \1                  s1         	         1            <      1            <      1      
   1   v	      1      
   1   t	      1            M      1            ]      1                  2                  2                    2                   32         .   `       S2      
   4         \2            P       s2      
   4         }2      
   1   	      2      
   1   ~	      2      
   1   	      2      
   1   	      2      
   1   	      2      
   1   	      2      
   4   
      2                   2      
   4         2      
   1   	      2      
   1   	      2      
   4         2      
   1   	      2      
   1   	      2      
   4   -       3      
   1   	      3      
   1   	      3      
   1   
      3      
   1   
      3      
   4   =      $3            
      C3      
   1   2
      G3      
   1   &
      o3      
   1   q
      s3      
   1   c
      x3      
   4   n      3         .          3      
   2          3      
   1   
      3      
   1   
      3      
   4         3      
   1   
      3      
   1   
      3      
   4         3      
   1   
      3      
   1   
      3                  3                  4         	         4                  )4                  A4                  ]4         	         m4                  4         	         4            8      4            E      4            Y      4            *      4            h      5                  5            4      #5         	   8      05                   C5         .          c5      
   4         l5                  5      
   1   
      5      
   1   
      5      
   1   2      5      
   1   $      5      
   4   n      5         .          5      
   2   x       5      
   1   s      5      
   1   o      5      
   4         5      
   1         5      
   1          6      
   4         6      
   1         6      
   1          6            \      -6                  I6         	         Y6                  q6                  6                  6         	         6                  6         	   P      6                  6                  7                  "7                  @7                   M7            K      Z7                  k7         	   8      x7                   7         .          7      
   4         7            	      7      
   1         7      
   1         7      
   1         7      
   1         7      
   4   n      7         .          8      
   2   b       8      
   1         8      
   1          8      
   4         )8      
   1   /      -8      
   1   -      28      
   4         H8      
   1   ;      L8      
   1   7      Q8            L
      ^8            p
      y8         	   h      8            
      8            
      8         	         8            	      8            
      8            
      9            	      $9            $
      19            C
      >9            
      O9         	   8      \9                   o9         .          z9      
   4         9                  9      
   1   R      9      
   1   J      9                  9      
   2   7       9      
   1   x      9      
   1   r      9                  9                  :      
   1         :      
   1         :                  ':         	          2:                  P:                  i:                  :                  :      
   4         :                  :      
   1         :      
   1         :      
   1         :      
   1         :      
   4   n      :         .         	;                   $;            
      B;                  P;                  n;            4      {;            C      ;            q      ;         	   8      ;                   ;         .         ;      
   4         ;                  ;      
   1         ;      
   1         <      
   1   
      <      
   1   
      <      
   1   X
      !<      
   1   T
      &<      
   4   n      0<         .   0      =<                  F<      
   2   "       T<      
   1   m
      X<      
   1   i
      a<      
   1   
      e<      
   1   
      n<            A      w<            A      <      
   1   
      <      
   1   
      <      
   1   
      <      
   1   
      <            T      <         	          <                  <                  	=                  '=                  5=                  B=            #      O=            e      \=                  q=         	         ~=                   =         .   0      =                  =         	   8      =                   =         .   0      =      
   4   L       =                    >      
   4         0>      
   1   
      4>      
   1   
      :>      
   4         V>      
   4   
      _>            p      >      
   4   L      >            `      >      
   4   s      >      
   4   
      >                  >      
   1   
      >      
   1   
      >            `      
?      
   1   
      ?      
   1   
      ?      
   1         ?      
   1   
      $?                  -?                  I?      
   1   "      M?      
   1          V?      
   1   /      Z?      
   1   -      _?                  {?         	          ?                  ?                  ?      
   1   ?      ?      
   1   7      ?                  ?                  ?      
   1   a      ?      
   1   _      ?                  @         	          @                  
                    *
                    B
                           
   /                                "       
   5          &       
   5   &       *       
   5   O       .       
   5   r       2       
   5          6       
   5          :       
   5          >       
   5          H       
   5          M       
   5          R       
   5          W       
   5          \       
   5          a       
   5          f       
   5         k       
   5         p       
   5   )      u       
   5   8      z       
   5   G             
   5   P             
   5   \             
   5   e             
   5   p             
   5   u             
   5   }             
   5                
   5                
   5                
   5                
   5                
   5                
   5                
   5                              2            0      P            @      k            P                  `      W                   v            @                  `                            4                    L             P       h                                                                         p                        $            `      8            p      L                  x                                                 0                  @                  P                  `                        ,                  P                  l                              	                  
                        ,             
      P            
                  @                                                                           @                  `       .symtab .strtab .shstrtab .rela.text .data .bss .rodata.str1.1 .rodata.str1.8 .rodata .rela.debug_info .debug_abbrev .rela.debug_loclists .rela.debug_aranges .debug_rnglists .rela.debug_line .debug_str .debug_line_str .comment .note.GNU-stack .rela.eh_frame                                                                                            @       s                                   @                                               &                                                          ,                                                          1      2                     #                             @      2                                                 O                           D                              \                            7@                             W      @               8      j                          h                      ;Y                                   {                      R_      i                             v      @               .     H                                                 m      0                                    @                /     0          
                                       m                                                          n                                         @               0/                                     0               J{      !                                  0                                                       0                     (                                                                                                                                                       @               3                                                                     6                 	                                                                               6                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  ~
  nbd_can_fast_zero.3 _
  nbd_opt_starttls.3  H
   nbd_set_tls_username.3  k
 $ nbd_clear_meta_contexts.3   V
 $ nbd_get_handshake_flags.3   x
  nbd_is_read_only.3  
   nbd_aio_connect_unix.3  t
   nbd_connect_command.3   <
 $ nbd_set_request_block_size.3{
  nbd_is_rotational.3 
 4 +nbd_aio_connect_systemd_socket_activation.3 
 0 'nbd_aio_opt_list_meta_context_queries.3 N
 , "nbd_get_request_extended_headers.3  
   nbd_aio_connect_tcp.3   s
  nbd_connect_socket.3D
   nbd_get_tls_negotiated.3
   nbd_aio_opt_starttls.3  
  nbd_aio_opt_abort.3 .
  nbd_set_debug.3 ,
  libnbd-security.3   `
 $ nbd_opt_extended_headers.3  |
  nbd_can_trim.3  j
   nbd_get_meta_context.3  
 0 &nbd_aio_opt_set_meta_context_queries.3  
   nbd_pread_structured.3  
  nbd_aio_opt_info.3  
  nbd_can_multi_conn.3y
  nbd_can_flush.3 
  nbd_get_size.3  G
 $ nbd_get_tls_verify_peer.3   e
 , #nbd_opt_list_meta_context_queries.3 ]
  nbd_opt_go.3S
 ( nbd_set_request_meta_context.3  C
  
nbd_get_tls.3   B
  
nbd_set_tls.3   w
 (  nbd_get_socket_activation_name.3u
 0 'nbd_connect_systemd_socket_activation.3 
  nbd_aio_opt_go.3=
 $ nbd_get_request_block_size.3a
 $ nbd_opt_structured_reply.3  r
  nbd_connect_tcp.3   W
 $ nbd_set_pread_initialize.3  
 ( nbd_can_block_status_payload.3  d
 $ nbd_opt_list_meta_context.3 I
   nbd_get_tls_username.3  
  nbd_pread.3 h
   nbd_add_meta_context.3  
  nbd_aio_connect.3   K
   nbd_get_tls_hostname.3  
   nbd_aio_connect_socket.3
   nbd_block_status_64.3   Q
 , $nbd_get_request_structured_replies.3g
 , "nbd_opt_set_meta_context_queries.3  
 ( nbd_aio_opt_structured_reply.3  q
  nbd_connect_vsock.3 
  nbd_aio_pwrite.35
 $ nbd_stats_chunks_received.3 l
 ( nbd_set_uri_allow_transports.3  
  nbd_poll2.3 E
 $ nbd_set_tls_certificates.3  ?
  nbd_get_full_info.3 
  nbd_aio_disconnect.3
  nbd_aio_trim.3  
   nbd_aio_block_status.3  
 $ nbd_aio_block_status_64.3   
 ( nbd_aio_block_status_filter.3   
  nbd_aio_get_fd.3
   nbd_aio_notify_write.3  
   nbd_aio_is_connecting.3 
   nbd_aio_is_negotiating.3
   nbd_aio_is_processing.3 
  nbd_aio_is_closed.3 
 (  nbd_aio_peek_command_completed.3
  nbd_aio_in_flight.3 
  nbd_get_version.3   
  nbd_is_uri.3
  nbd_get_error.3 
  nbd_get_errno.3 
  nbdkit_export_name.3
  nbdkit-filter.3 
  nbdkit_nanosleep.3  
  nbdkit_parse_bool.3 
  nbdkit_parse_delay.3
  nbdkit_parse_size.3 
  nbdkit_peer_name.3  
  nbdkit_peer_tls_dn.3
   nbdkit_read_password.3  
  nbdkit_realpath.3     nbdkit_stdio_safe.3   nbdkit_disconnect.3    nbdkit_parse_int8_t.3      nbdkit_parse_int16_t.3     nbdkit_parse_int32_t.3     nbdkit_parse_uint16_t.3    nbdkit_parse_uint32_t.3 
   nbdkit_parse_uint64_t.3   nbdkit_peer_pid.3     nbdkit_vdebug.3G   nbdkit-ocaml-plugin.3H NBDKit.3 " :    ]L_   ޠ< b! <C#-   l$$$ U&  V;&  l'$ $ G)W( Tk* 
@*( , F,   \.f$ 0  RC1 zI,3   36a$ 
'7@ ީ 8'  &f;|$ >/( >o   N@ qB 8{zL  J)M $ 5O9 $R ( R tCTN  >W$ \A0 ۛ_$ _ 3a5   .bW   *?b Ub- .c	, ޻Le $ 2Re( $qj   4kO   0n+, jFo &/qw   *%x $| k  	 ;>  ԗB0 Ɗg   lRW  =ҏ zӏ ;    $ Ȓj$ <Ȓ ֪F  l\  X` $ <yh DAo4 h[`0 \, `MV  `OU I5   d   ~  ZZ  d $ r;j nH  G0 8)  8
W . Մ c 	 $ ., 30ȣ 1WM( `ʸ  β   z( !d0 _| *Ԉ $ G־$ <N `s$ ^ܱ( $     , ̕   `7 䲜   8^  P  ]6, F, KW(  G N< xF $ v( 2 \      `WELF          >                    
         @     @   !x.w)H
    HcHfD  _tC~ltzt   Ð   ÃKu   Df        f.        D@ ATUSH    H      HIHuQf     Ht[H)t>    LH9HF    HuH=    1    H    []A\ H    1[]A\f.     H=             J   H=    1        AWAVAUATUSH       H  HD$H    Hx0HH|$`    A  H$            Aă1        $   %`%  $   $   L$   $   AfD$fAf    Dt$$fAAƉD$0    $HI  LHHD$ȉD$A     fA   R   AL  f Z  fA    f.     =              H|$`    H|$H    HĨ   []A\A]A^A_    1@ =     tA    H=    H1     AEf  AH=    1    A   ff 5  HD$`HH$          HD$(    =     0  H$       HD$ 7  ff  !  EH  f  Lt$H    IH
  HxXH|$P    a
  A    HD$X    +
  l$L    fHD$H     f<	  H|$    HHl  H<$1L    HT$hHD$H;D$`w  Ld$t$E1HLl$LIJ&\$MLILt$H9rAI9t<H<$HH    HT$h  t$pH9HFAtIAHM9rLLl$I\$B<   HHJt D  HʉPPʉPH9uHD$ |$p      Hl$XH<$HD$hHf3  HD$`A   tWH|$D   Mg1D$D      A   u,HI9tFHD$X1I9   H<A   uտ       H=    H1    1    H|$X    H|$P         H=    1    1    ff    fAfAI   T$L$Ht$    L$Z  fA  D$AffD$    f :  A  H=    1    fA   D  H=    1    1    @ Muy       H=    H1    +     Al   O1fD      H=    A   H1        A.  f 
  H=    1    t$  1     H=    1    D  A    L$HT$H=    H1    f tf A   @    HHD
  HxXH|$X    
  HD$ H<$   D$p      HD$hHf3 HD$`     t$0D1H|$P   ȉD$P1fD$T         H|$X    D    H=    H1         HH'	  HxXH|$X      ft$0DD$`gDf@E!HD$ HD$hH<$@վ   ȉD$d     @t1ҋt$H|$(   t181    H=    H1    1    fA  f	  A      AtH=    1    fD  DffD$6tA     fAw|$     f   f )  f   A   @  fAm  t$H    HD$(Hs   HD$`HH$        A    HD$HHD$8    H
  1L   D$`            fA    H    AHcHDL$LD$8LHT$t$    tZ        E1e1f|$  L$LHT$t$ȃf|$6 EȉȃAE    uDt$`E          EtD  L$HT$1Lt$    XL$HL$E1LT$Ht$(    0H$1L    kD$6L$LHL$T$Ht$(D     :L$6L$LHT$t$        Avf kH=    1         t$0H=    1    f         HH  HxXH|$P      HD$ H<$      HD$hHf3  HD$`D$ȉD$p     L|$XH|$X         t1ҋt$H|$(   1    H=    H1    1               HH0  H<$1L    HT$hH(  D$   A   H9HGE D$pE9fD  H=    1    UA   ?       H=    H1    f   f   A       @  A    K  fA`  HD$(    H       H|$H    HD$HHHD$`A   HH$        1f u  HD$`HH$        =HD$(    A   xAA       T$   H=    H1    A    H=    H9A       fAwSt$H    HD$(HY@ 1    H=    H1    H=    1    HD$(    H=    1    1HD$X        A   e       H=    H1    1    H=    H5       H=    H1    q       H=    H1    QH=    1    1    %A    H=    H       H=    H1    t$H    HD$(HH
      H5    H=        H
    v  H5    H=        H
    7   H5    H=        H
    '  H5    H=        H
      H5    H=        H
      H5    H=        H
    y  H5    H=        H
       H5    H=        H
      H5    H=        H
      H5    H=        H
    x  H5    H=        AjH
    U  H5    H=        H
    T  H5    H=        H
      H5    H=        H
      H5    H=        H=    1    sH
      H5    H=        H
      H5    H=        fAw{t$HH4$    H4$HHD$(f !t$H|$(  t.A    H=    H1    %fD       J   1HT$(                                                                                                                                                                  extents_to_block_descriptors    send_structured_reply_block_status              send_structured_reply_read      send_structured_reply_error     send_simple_reply       handle_request          validate_request                protocol_recv_request_send_reply        write request too large to skip client closed input socket, closing connection  invalid request: 'magic' field is incorrect (0x%x)      client sent %s, closing connection      invalid request: %s: write request on readonly connection       invalid request: %s: offset and count are out of range: offset=%lu count=%u     invalid request: %s: expecting offset and count = 0     invalid request: unknown command (%u) ignored   invalid request: unknown flag (0x%x)    invalid request: NO_HOLE flag needs WRITE_ZEROES request        invalid request: DF flag needs READ request     invalid request: FAST_ZERO flag needs WRITE_ZEROES request      invalid request: REQ_ONE flag needs BLOCK_STATUS request        invalid request: %s: structured replies was not negotiated      invalid request: FUA flag not supported invalid request: %s: data request is too large (%u > %d)        invalid request: %s: flush operation not supported      invalid request: %s: trim operation not supported       invalid request: %s: write zeroes operation not supported       invalid request: %s: cache operation not supported      invalid request: %s: base:allocation was not negotiated conn->meta_context_base_allocation skipping write buffer: %m unexpected early EOF protocol.c conn != NULL !_r read request: %m read data: %s: %m (int) error >= 0 sending error reply: %s write reply: %s: %m write data: %s: %m write error reply: %m nr_extents >= 1 calloc: %m e.length > 0 e.offset == offset     5       ;                                ;   *           <                    (R   =int >s       *B       ,           -;   s      ;        I                           M                             3B      5#B       6#B         7      (	      	s        	B       	s       	B       	 s       	"	`       	#	`       	$G   ?(
C	  -    ES  -    F  -    G         ;   '     
H    @    g                            R       
z      
F       
   R       ;   
   '  s    R  
          
          
          
          
          
      
  
  
      !  !  
+      5  5  
?      I  I  
S      ]  ]  
g      q  q  
{          
  z  
    
    
    
    
    
    
  &  
  :  
  N  
  b  
  v  
    
      P      .       .      "     Z      Z  i      "  .    p      .       M  (i 
*              	        	   ((dl 	I   0    
  8    	  @      H    
  P      X    
  `    
  h    
  p      x    
      
      
      	      	      ,      O      	h      	|      
            
      	      	|      	|      	|  	    	|   	    	|  	    	|  	    	|  	    	|   	    	|  (	    	|  0	    	  8	    	1  @	    	O  H	    	w  P	    	w  X	    	  `	    	w  h .    (B      N       .      	I   (b M            L      	       !K       #.      $"      %"      &"      's   	    (s    	    )s   	    *s   	    +s   	    ,s   	    -s   	    .s   	    /s   	    0s         :      Mz	      Q		       R		      U
	      V	      W		       Z		  (    [		  0    \		  8    ]		  @    ^		  H    _		  P    `		  X    a		  `    b		  h    c		  p    e	
  x    h	8
      k	V
      l	~
      n	~
      p	
      r	~
   
s   	  	   B  z	  
  	  	   	  
   	  	   	  
s   	  	  n  n  n   	  
s   
  	  I   "  .  "  
   s   	  
s   8
  	    "  .  "  
   
  
s   V
  	  "  
   =
  
s   ~
  	  "  .  "  
   [
  
s   
  	  "  .  "  U  
   
            "                   .      .      "       A      "       "      .             "                   .      "             .              "       "   A          	"   (len 
       (*  /ptr :   /len *   /cap *        (      6  4    
6  s  4    z   BB   r  $     )    ~    
s     I   *    )        
s       *   s    )        .    0:L      ;.       A      B  0    C  X    D      Fy      G       H	I       Is       K      L
:      N"      O      P6      R       S6      U6      V6      W6      Y*  	    Z	   	    \s   	    \s   	    ^r  	    `   	    a  (   CB   3y  $     $    $    $     )    8Q  '  M     
s     M     
     M     '  M           
s     M  s      
s     M  s   s   d     
   ,  M  s   s      
I   O    s      s    1  
s   h    s    T  
s   |     m  '       
          
         
s       n  n  n     
s       I   "  .  "  
     
s   1      "  .  "  
   	  
s   O    "  
   6  
s   w    "  .  "  
   T  
s       "  .  "  U  
   |  *          *    _      ,I     *   *    *    *        %    5

  I    D    c
    Cs   F    "  .  "  U  
       ?s   q    "  .  "  
       Gs       "  .  "  
       ;s       "  .  "  
       8s       "  
       4s         "  .  "  
       0s   H    I   "  .  "  
   0    xE    u
b  s        s     s   I   *        
6      .  "   %    [
     U           s    0    a0    `%    8
         F    %

  *    U  #  .  .         :         zI   Q  *    *    /   g  B    %    
z     5     f
6    y   %    _     5 6    ey      s        G    E
        B       6    |L  H    t6      -  7    vL              -  	        "r ws           "cs xy          1    y
  "cmd z              z      {"      {"  7    {"              |.  "buf }	           1    ~/U  ~I            8    A  1      8    ~  "_r s                     A  Us0           U	        T	        Q
R	          4                
  4           5                 5           5                
  5           4                 4           4               
F  4           I4                
e  4          |4  p4  d4  Y4          !    4                                U	        T} 
             T~Q~             U	                 Q  *  U3           I  U	                 Q            u  U	                     U	                 Q    U} 
             U	        Q~R~             U	                     U	                   F  U	        T~           e  U	                 Q  |  U3             U	                 Q    U} 
             U	        Q~R@F$         Q              U	                   1  U	                 Q  H  U5           g  U	                 Q  ~  U4             U	                 Q    U6             U	                 Q    U7           	  U	                   H  U	        T	        Q7R	                   U	                     UTL                   z    U1             U         Q    U} 
         g    U	                     U~           0  U	                 z  G  U0           f  U	                 z  }  U0         y2    T~         z    U0         g    U	                 :    U~             U~         #            6  U~           P  U~         y2            w  U~         :    U~         :    U~         :    U~           U~T~         Q    U} 
           3  U	                    .                
#  .          .  .  .  .          .          !    /          &/  ~2/  >/  ~J/          V/  ~b/          l/          v/      ^  w/                    !  U}            U	        T	        Q
R	          /               *l!  /          /  /  /  /          !    /          /          0          0          T0        U0          Ja0      b0          l0          x0      ?  y0          0                     d  U~T~ Q0             U~Ts Qv            U	        T	        Q
R	           4                 4           K4                             4   *0         /0          90      _   :0          F0                        U~T~ Q0           U	        T	        Q
R	                       U~               U~T8           !  U1           .!  U	                   U	        T	        Q
R	           4               3!  4                             !  U~TDQ1         !  U~T4Q1         !  T8Q| v .         Q  "  U7           5"  U	                 z  L"  U0           e"  U~           ~"  U~         z  "  U0           "  U	        T	        Q
'R	                   U	        T	        Q
R	           .               e%  4.          (.  .          .          !    @.          _.  ~k.  w.  ~.          .      $  .                    #  Uv            U	        T	        Q
UR	          4                g+$  4                             X$  U~TDQ1         /2  y$  U~ T~         $  U~T6Q0           $  U~                   z  $  U0           $  U	                 z  %  U0         Q  '%  U} 
           U	        T	        Q
TR	           j1               '  1          1  1          1  1          y1          !    1          1  ~1  1          2          2      k&  
2                    .&  Us            U	        T	        Q
yR	          4                &  4                             /2  &  U~ T~         &  U~T@Qv          '  U~T~Q0         Q  &'  U0         Q  B'  U} 
           U	        T	        Q
xR	           3                
z*  3          3          3  3  3  3          !    3          4          4          (4                    O  )(  U0         H            y(  U| T~Q~R~ 1%4X~Y~         F  )  U| T~Q~R]~0)2!~0)~0.( 8!~0)2!~0)~0.( ~
8%@ $0.( X~         q  A)  U| T~Q~R0X~           )  U| T~Q~R~X0Y~           )  U| T0Q~           )  U| T~Q~R~X~
1$Y~           ,*  U| T~Q~R~
1$X~           k*  U	        T	        QR	                 
    0               ,  0  0  0          0          0          !    0          1  ~%1  11  ~=1          G1      o+  H1                    2+  Uv            U	        T	        Q
R	          4               +  4                             +  U~TDQ1         +  U~T8Q1         
,  U~T~Q0         Q  $,  U0                   z  H,  U0         Q  _,  U0           U	        T	        Q
R	                               ,  U~                               ,  U~          g  -  U	                                                                                         -  U	        T	        Q
vR	                   U	        T	        Q
R	             -  ;     -  &    Q6  .      Q'.  #cmd Q8      QF      R'"      TL      .  	            U      VA      W  r Xs    _r Us        .  ;    .  &    6  /      ..  #cmd .      <      ."      >.      <U      L      /  	                   A      !0/      "
*       #"  i $
*   r %s    _r s        /  ;   " /    &    /  0      6U      (      ("      8.      '0      =      6   i 
*       #/      0  	        LT0  e  P   _x3 .  _y4 ;      pos .   e "P      .   _x5 #.  _y6 #B       *      0  ;    0  &    6  U1      &.  #cmd 7  #buf )       7"      G.      L      e1  	                  A         r s    _r s        e1  ;    U1  &    t6  2      t.  #cmd t.      t<  #buf u        u."      v"      xL      *2  	            y      z  r {s   f |s    _r ys        *2  ;    2  9    Ls           |       y2  +    Ls           +    L            9    0s                  3  +    0s           +    0**           Mbuf 23  "r 3                   b  +3  Uv T| Q#s 
  s #,(            J3  U	                   i3  U	                             U	             3  N;    ,    "  44  2cmd       (      8.      I"  2buf I       3U  :    L      D4  	        3c   3f "  3err s       D4  ;    44  ,    46  4  2cmd 4      4*      4:.      4K"      5n  :    7L      4  	            4  ;    4  ,    F   4      F    ,    1   5      1    O    "g       "g     I ~   I  H}   !I  
 :;9I8  
 :;9I8  4 1B   1B  	
 :!;9I8  
'I  H }  & I  
7 I  4 :!;9I   :!;9I   :;9I   1  4 :!;9I  1RBUX!YW  .?:;9'I<  H}   <  4 1  $ >  I  H}  ! I/  :;9   :;9I  4 I4  1U     !U  "4 :!;9IB  # :!;9I  $(   %.?:;9'<  &.:!;9!'I !  ''  (
 :;9I8  ) :!;9I  *.?:;9'I<  + :!;9IB  ,.:;9!'I   -
 :!
;9I  .:!;9!  /
 :!;!(9!I8  0. ?:!;9!
'<  14 :!;9I  2 :!;9I  34 :!;9I  44 :!;9I?<  5   6. ?:!;9'I<  74 :!;9IB  8U  9.:!;9!'I@z  :4 :!;9!I  ;%U  <   =$ >  >5 I  ?:;9  @&   A:;9  B>I:;9  C>I:;9  D. ?:;9'<  E.?:;9'<  F. ?:;9'I<  G.?:;9'<  H.?:;9'IU@z  I
 :;9  J1U  K1RBXYW  L  M4 :;9I  N! I/  O.:;9'I                                                                       "P"SSS		S	
S
SS
SSSSSSSSSPS  S!!S!!S""S#$S        S                             P=VVVV

VV##P##P##	                                                            =P=\P\P\P
\

P

\
\P\\\\\\\\\ \ !\""\"#\                                      ]]v 8$

#%!	]	]]]]]v 8$

#%!]!]!#]        ]                                                                               00F^
0

F
0Fl0N0F
00F00^0F0F0F0F0<0<0<0F0F00F0F0F0F00  0 !^!!0""0""F#$0        0                                                                     000~0
00P~~00~P~00P0000P00!!0""0##0##P$$0              PP           T          V           P          _          Q                                         n          	     		     

     

                                                                                                !!                                              n]]	]		]

]

]]]]]]]]]]]]]]]]]] ]!!]                            	P	`XXX~		X		X~P                        ^S^^^^^                ]Cv 8$

#%!v 8$

#%!                        ~~~~~~                              P]~]]]P]]]                      U0UtVV__10           ,V                (P)?PWeP                +PPP                                                               ^S^^^^                $v 0$0.v 0$0.v 0$0.                         P ~P~~~P~                  U0[tV000                                 PCVC^R^_PVPVPVVV                     E~EN\N]]P~                 HQaQQ	                P/JPJd&q   q #,(                QdQ            |d|             p 
Q                ,QQ	          (Q               ~P(~           3$#               ^^^               ]]]                                PVVVPV                  P4=PPP              
PP           P                 ^^^^                 ~~~~                 ]]]]                                  PSSSSPS                P1PP                  v 'Q'dv v               $PP           P                        Po~~~~~        ~                      o~~~~~        ~                      o]]]]]        ]              PP                    X\s\\\        \                                       101X~ 80$0.2$s0r Pr R^~0)2!~0)~0.( 8!~0)2!~0)~0.( ~
8%@ $0.( 0~
1$X~
1$0~
1$R~
1$0        0               ~~~               ]]]          
                      PVVVPV                  "P#8P9HPP              
PP             ~#	P                                9U9>P>?U?EPEFUFVPVWUWePefUf{P{|U                  NTNWTWsTs|T                        'U'dVduUuVUVUU                     'T'5S58s p 8dSSTT                P)8P_tP <                     ~                                     5                $                  	
!!""#$          
                     
                      5@           @H          'x					

 !!                    
                              [`          	                    ?                    WW                    
                               
           
          p                            
           	         &         e
       
                                                                                                                                                      	        /7Xu.X] X<fX<IX%4]u</	YgY
otX
s/.yȻ
Xgs.tuX/utXX	./
X=
{t


{t
<{X{
X{{
{
{
f<k
,%   c/.f {
{J)
^ X	  	  } y S g# f! 
~XX<X0zgYt>&Y	<fX!<	X!dY&tY
#'Y#It'<[8KL!X7<X<X]
|.|
.
|J.=|
X:X [M
tZzJY{u^$	
Hx.JY	X	JvY0W

{.Z{tX
&{.Y{uXf.zXvd4(X   	)   X {#7~X<X]SYg{
{.Kugk rX}X<X@r#J7f0}XzJP
}X.LgY	
].Ttu|h{ 
J#

R f Y
|Xy.u]Z*	>	0	>Xf]X`|	zt>	.<		X	XX]X|	fh		y	ZX
	Z	0XJ~&L]!}X<X]Y}
}t.LgYK]tuJ>$[JUit=%t<-|.XXWm	O?%%Y;XZ
D=XCf X.	QX
 u" P X	4{McX~u

{ w
XX	~Y 
+}Xt}^XY|X

 R  t{x~~. }~~z}X	.u


sY
f
N
	%X	g.	  	         count STATUS_ACTIVE after_fork preferred_block_size size_t cleanup_free exportname_from_set_meta_context __prev __align dump_fields cleanup_extents_free protocol_recv_request_send_reply close pwrite threadlocal_buffer ssize_t __size list_exports can_write __timer_t can_cache request_lock status_flags nbdkit_extents_new __next nr_extents plugin_name string_vector free extents magic_config_key flush send_structured_reply_block_status pthread_mutex_lock reply long long int signed char sockaddr_inarp top_context preconnect nr_blocks send_structured_reply_read prepare backend_zero int64_t pthread_mutex_t state __int64_t long int backend_flush conn __ssize_t recv sockaddr_dl quit uint16_t cflags sockout __bsx __pthread_list_t nbd_errno handle_request exportname thread_model __bswap_64 sockaddr_x25 sockaddr_ax25 sockaddr_ipx long double nbd_structured_reply __uint32_t conn_status sock is_rotational nbdkit_extents_count GNU C17 12.2.0 -mtune=generic -march=x86-64 -g -O2 -fasynchronous-unwind-tables status_pipe SEND_MORE zero connection_recv_function lock_request extents_to_block_descriptors unsigned int block_size nbd_request unlock_request long unsigned int __kind __data can_fua name offset_data long long unsigned int connection can_extents short unsigned int crypto_session using_tls type can_zero can_multi_conn trim nbdkit_exports validate_request default_export handle sockaddr_un __owner usage can_flush cleanup_mutex_unlock connection_set_status connection_send_function minimum_block_size send_simple_reply debug_in_server meta_context_base_allocation timer_set open handshake_complete get_ready filename send request can_trim uint64_t eflags threadlocal_clear_last_error sockin threadlocal_set_errno __PRETTY_FUNCTION__ cleanup error_data sa_family_t read_lock __pthread_internal_list __uint64_t __elision nbd_chunk_offset_data sockaddr_ns sa_family __bswap_16 send_reply nbdkit_next_ops __assert_fail config_complete interns _Bool unsigned char sockaddr_iso STATUS_DEAD version next short int get_size _lock1 _lock2 error _lock8 _lock9 connection_close_function name_of_nbd_cmd __pthread_mutex_s STATUS_SHUTDOWN magic backend_cache __count __lock uint32_t nworkers backend_pread connection_get_status finalize cookie length char req_one config __uint16_t verbose nbdkit_extents abort structured_replies __errno_location nbd_chunk_error offset backend backend_get_size context nbdkit_next nbdkit_extent sockaddr_eon __spins sockaddr_at backend_pwrite send_structured_reply_error __bswap_32 nbd_block_descriptor_32 maximum_block_size default_exportname STATUS_CLIENT_DONE sockaddr_in6 status sockaddr calloc nbdkit_error sockaddr_in c_next backend_trim __nusers flags threadlocal_get_conn timer export_description timer_t nbd_simple_reply read sa_data skip_over_write_buffer __list blocks can_fast_zero backend_extents nbdkit_get_extent status_lock strerror exportsize _lock7 context_id cache backend_valid_range write_lock pread protocol.c /tmp/nbdkit/server /tmp/nbdkit/server /usr/include/x86_64-linux-gnu/bits /usr/lib/gcc/x86_64-linux-gnu/12/include /usr/include /usr/include/x86_64-linux-gnu/bits/types ../include ../common/protocol ../common/utils protocol.c protocol.c byteswap.h stddef.h types.h stdio.h timer_t.h stdint-intn.h thread-shared-types.h struct_mutex.h pthreadtypes.h stdint-uintn.h sockaddr.h socket.h nbdkit-common.h internal.h nbdkit-filter.h nbd-protocol.h string-vector.h stdlib.h cleanup.h unistd.h string.h errno.h protostrings.h pthread.h assert.h  GCC: (Debian 12.2.0-14+deb12u1) 12.2.0        zR x            |       @   0           BAA G@`
 FABDG
 CABK L   t       >   BBB B(A0A8Gs
8C0A(B BBBH                                                                                                |                                                                                            -                      2                     7                           	                 <                     A      x              G                     M      P               R                    X      K               ]      @              c                     i      @              o                      t                     z                                                                                                            h                    (                                                                                                                                                                   P                         !             /                     G                     :                    `                        #       %                   +    0             A    H             W                  m                    s     n               y                                                                                \                  	                                           
                                                                                                                                                                                                  @      >                           1                     D                     Z                     b                     x                                                                                                                                                                                                                                       -                     w                     2                     H                     e                     u                                                                                                                                                                                                                  	                      protocol.c nbd_errno skip_over_write_buffer .LC1 .LC2 .LC0 .LC9 .LC13 .LC30 .LC8 .LC16 .LC6 .LC12 .LC10 .LC17 .LC7 .LC11 .LC29 .LC31 .LC18 .LC14 .LC15 .LC22 .LC21 .LC19 .LC20 .LC35 .LC25 .LC23 .LC24 .LC32 .LC26 __PRETTY_FUNCTION__.7 .LC3 .LC5 .LC4 __PRETTY_FUNCTION__.6 __PRETTY_FUNCTION__.1 .LC33 __PRETTY_FUNCTION__.4 __PRETTY_FUNCTION__.5 __PRETTY_FUNCTION__.0 .LC36 .LC28 __PRETTY_FUNCTION__.3 __PRETTY_FUNCTION__.2 .LC34 .LC37 .LC27 protocol_recv_request_send_reply.cold nbdkit_error __errno_location protocol_recv_request_send_reply threadlocal_get_conn pthread_mutex_lock connection_get_status verbose connection_set_status cleanup_mutex_unlock cleanup_extents_free name_of_nbd_cmd debug_in_server nbdkit_extents_count calloc nbdkit_get_extent cleanup_free backend_valid_range strerror threadlocal_buffer quit threadlocal_set_errno threadlocal_clear_last_error backend_extents unlock_request backend_zero backend_cache backend_pread backend_flush backend_pwrite backend_trim backend_get_size nbdkit_extents_new __assert_fail abort                         ?                          @            	            @            A   ,         
   3         @   R         C   u         D            E            C            F            G            H            I            F            J                        K            
   $         @   H         H   M         E   d         F            C            D            L   *         M   D         N            N            J                        @            G            O            H                        @            G   F         P                        @                        @            G            J                        @            E   !         J   (            8         @   `            g         @            G                        K            J                        @            C            D            H            Q                        K            C            D   [	         J   b	            l	         @   s	         G   	            	         @   3
         R   U
         H   [
         S   r
         T   
         C   
         U   
         V   
            x       
         W   
         X   
         E   @         Y   X         X   ]         E            Z            [            \            ]   '         ^   X            _         @   w            ~         @            C            D   6
         J   =
            G
         @   N
         G   f
         M   
         N   
            
         @   
         J   
            
         @   T         _   a         `            H            E            H            E            J                        @            J   $            M         R   k         J   r            |         @                        @                         @            G            J            !            @            J                        J            "   &         @   5         J   <         #   F         @   R         $   Y         @   `         G   p         J   w                     J            %            @            R               |               '            (            a               |               '            )            a               \               '            )            a   "                   .         '   5         ,   :         a   A                   M         '   T         (   Y         a   `                   l         '   s         )   x         a               ,               '            (            a               D               '            )            a                               '            0            a               |               '            1            a               ,               '            )            a   )                  5         '   <         (   A         a   H                  T         '   [         )   `         a   g                   s         '   z         (            a                               '            )            a                        @                               '            4            a                               '            5            a            R   H         J   O         6   Y         @   i         A   
                          E                    d                    A                    E                    I                    Y                    Q                    U                     Y       $             ]       (             a       ,             e       0             u       4             m       8             q       <             u       @             y       D             }       H                    L                    P                    T                    X                    \                    `                    d                    h                    l                    p                    t                    x                    |                                                                                                                                "                   
                b          
   9           
       
   =                
   >                  
   >                 
   ;   #      &       
   <           +       
   =   4       >       
   =         E       
   =   L      N       
   =         U       
   =         \       
   =         c       
   =         h       
   =                
   =   _             
   =   e             
   =   o             
   =                
   =                 
   =                
   =                
   =                 
   =                
   =   
            
   =   G            
   =               
   =         (      
   =   i       5      
   =   A      H      
   =         T      
   =   4      a      
   =   r      n      
   =   j      {      
   =   v            
   =   q
            
   =               
   =   	            
   =               
   =   
            
   =               
   =                
   =   p             
   =   O            
   =         #      
   =   y      /      
   =   o      B      
   =   >      G      
   =         S      
   =   4
      `      
   =   E      m      
   =   
            
   =   	            
   =   #            
   =               
   =   x	            
   =   Q
            
   =    
      "      
   =         6      
   =   1      J      
   =         ^      
   =   9      r      
   =   j            
   =               
   =   j	      )      
   =   6	      6      
   =         C      
   =         [      
   =         j      
   =   4      t      
   =   =	            
   =   V            
   =               
   =               
   =               
   =   P            
   =   m            
   =               
   =   S      
      
   =   ~            
   =         &      
   =   x       4      
   =         B      
   =         P      
   =   z      ^      
   =   F      l      
   =          z      
   =               
   =               
   =                
   =   T            
   =   .            
   =   2            
   =               
   =                
   =   
            
   =               
   =   Y            
   =          "      
   =         0      
   =   {      >      
   =   f      L      
   =         Z      
   =   
      h      
   =         v      
   =               
   =                
   =   
            
   =               
   =                
   =               
   =   /            
   =               
   =   r            
   =   [            
   =   V	            
   =               
   =   V      ,      
   =   c      F      
   =   ]
      T      
   =         b      
   =         p      
   =   _      ~      
   =   >            
   =               
   =                
   =   	            
   =                
   =               
   =   {            
   =   f            
   =               
   =   
      
      
   =               
   =          &      
   =         4      
   =   
      C      
   =   ^	      O      
   =   e      \      
   =   2      i      
   =         v      
   =               
   =   
            
   =   Y            
   =                
   =               
   =   {            
   =   f            
   =               
   =   
            
   =               
   =         	      
   =          	      
   =   
      	      
   =         ,	      
   =          9	      
   =         F	      
   =   /      S	      
   =         `	      
   =   r      m	      
   =   [      
      
   =   d      
      
   =   V      
      
   =   z
      
      
   =         
      
   =         
      
   =   6	      
      
   =           
      
   =   
            
   =   V      '      
   =         4      
   =         B      
   =   J      O      
   =   V      \      
   =   z
      i      
   =         v      
   =               
   =               
   =   #            
   =   6	            
   =   	            
   =               
   =   !            
   =   &	            
   =               
   =   _      +      
   =   _      9      
   =         C      
   =         S      
   =         l      
   =         s      
   =   	            
   =               
   =   
            
   =               
   =   V            
   =               
   =         

      
   =   u      
      
   =   )      &
      
   =   -
      4
      
   =         B
      
   =         P
      
   =         ^
      
   =         l
      
   =   	      z
      
   =         
      
   =   x      
      
   =   3      
      
   =   
      
      
   =   $      
      
   =         
      
   =   	      
      
   =         
      
   =         
      
   =   H             
   =               
   =         "      
   =         0      
   =   Y      >      
   =          a      
   =         g      
   =   
      m      
   =   F      s      
   =          z      
   =   j            
   =               
   =   =
            
   =               
   =   ;             
   =               
   =         G      
   =   :      r      
   =   \            
   =   d
            
   =   x            
   =   	            
   =         I      
   =         P      
   =         c      
   =   
            
   =   a            
   =                
   =   5            
   =   p            
   =   "            
   =               
   =   	      	      
   =   .      $      
   =   E	      ;      
   =          R      
   =   $      h      
   =         {      
   =               
   =   D
            
   =               
   =               
   =   u            
   =   
            
   =                
   ;                
   =               
   :   >             
   :                 
   =         *                  <      
   :   
      @      
   :          O      
   :         S      
   :   [      X      
   =   ^      s      
   :   _      w      
   :   C      |      
   =   z
            
   =   V            
   =                 
   =               
   :   i            
   :               
   =   6	            
   :   i            
   :   -            
   =   r            
   =   Z                  \            
   ;   "             
   =               
   ;          !      
   :   f      %      
   :   b      *            y      B                  S            G       `            /       t                                          
   ;                
   :   ~            
   :   |                              
   ;                
   :               
   :                                 
   ;                
   :               
   :                                 
   ;                
   :               
   :         #                  -      
   ;          =      
   :         A      
   :         K                  U      
   ;          e      
   :         i      
   :               
   :   _            
   :   -            
   ;                
   :   (	            
   :   	                                    (                  x                  J                        
                                    +                  @            @      J            %      W            <      l                   v            k                  @                                                                         	                                     c                                          4                  G            
      \                  f            
      }            
                  h                                                      (                  o                        	                                    (                   2                  I                  ^                  h                              *                                    9                  J                                                                         P      
                              :       ,            /       ?            `      I                  Z                  f                                                                                                                                           L                         '            P       1                  H                  ]            K       g                  ~                                                                                      7
                  Y
                  X                  e      7                  Q                  ^                  x            Q                                    
                  6                  L                  ]      *            \       4            m      F                  P      
   ;   e      `      
   :   	      d      
   :   q	      |      
   :   	            
   :   	            
   :   
            
   :   
            
   ;   e            
   :   n
            
   :   Z
            
   :   
            
   :   
            
   :               
   :               
   :               
   :               
   ;                
   :   9            
   :   3      	                  "            ]      3            G       @            /       T                   c                  m      
   ;         }      
   :   `            
   :   V            
   :               
   :               
   ;               
   :               
   :               
   :   ,            
   :               
   :               
   :   u            
   :               
   :               
   ;               
   :   '
            
   :   
            
   ;               
   :   b
            
   :   Z
            
   :   
            
   :   
            
   ;         )      
   :   
      -      
   :   
      6      
   :         :      
   :         @            H      e                                                                   /                                                   
   ;               
   :   (            
   :   $                                          "       
   ;         /       
   :   C      3       
   :   =      <       
   ;   %      I       
   :   v      M       
   :   t      V       
   :         Z       
   :         `             
                                                          /                                                           .                   j
      !                  %!                   /!                  @!                   M!            /       a!                   q!            H      {!      
   ;   5      !      
   :         !      
   :         !                  !            O      !            x      !                   "                  "                  ,"                   6"                  M"                  f"                  "                  "            >      "                  "            /       "                   "            |      "            :       "            /       #                   #                  "#      
   ;   E      2#      
   :         6#      
   :         D#      
   :         H#      
   :         Q#      
   :         U#      
   :         Z#      
   ;   E      c#      
   :   2      g#      
   :   &      #      
   :   k      #      
   :   c      #      
   ;   b      #      
   :         #      
   :         #                  #            E      #            G       #            /       #                  $            a      $      
   ;   t      "$      
   :         &$      
   :         ,$                  9$            L      Y$            a      z$                  $                  $            p	      $            w	      $            ]      $                   $            d      %            t      (%            d      9%            :       F%            /       Z%                  j%                  t%      
   ;         %      
   :         %      
   :         %      
   :         %      
   :         %      
   :          %      
   :         %      
   :   G      %      
   :   E      %      
   ;         %      
   :   d      %      
   :   V      %      
   :         %      
   :         %      
   :         %      
   :          &      
   ;         
&      
   :         &      
   :         &                  /&                  @&            G       M&            /       a&            0      p&            	      z&      
   ;         &      
   :         &      
   :         &                  &            	      &            -	      &            L	      '            _	      ''            !      C'                  T'            :       a'            /       u'            0      '            
      '      
   ;         '      
   :   +      '      
   :         '      
   :         '      
   :   s      '      
   :         '      
   :         '      
   ;         '      
   :   	      '      
   :         '      
   :   )      '      
   :         '      
   :   |      '      
   :   X      (            
      (            
      *(            
      7(            
      z(            D      )                  B)                  )                  )                  )            +      -*                  B*            :       O*            /       b*            H      l*                   *                  *      
   ;         *      
   :         *      
   :         *      
   :         *      
   :         *      
   :         *      
   :         *      
   ;         *      
   :         *      
   :   
      *      
   :   O      *      
   :   G      +      
   ;         +      
   :   s      +      
   :   o      +                  3+                  D+            G       Q+            /       e+                   t+                  ~+      
   ;         +      
   :         +      
   :         +                  +                  +            
      +            *
      ,            :
      %,            K
      2,            R
      I,                   `,                  q,            :       ~,            /       ,                   ,            V      ,                  ,            Q      ,                  ,                  ,                  -                   -            v
      "-            
      /-            
      <-            \      I-            a      V-                  c-                  p-                   -            :       -            /       -                  -                  -            n       -            /       -                  .      
   =   	      .      
   =         ).      
   =   z
      5.      
   =         A.      
   =         M.      
   =         W.                  `.      
   =         l.      
   =         x.      
   =         .      
   =         .      
   =         .      
   =   z
      .      
   =           .      
   =   6	      .      
   =   r      /      
   =         /      
   =         /                   '/      
   =   I      3/      
   =         ?/      
   =   
      K/      
   =   
      W/      
   =   P      /      
   =   /      /      
   =   r      /      
   =   z
      /      
   =           /      
   =   6	      /      
   =   
      /      
   =         /      
   =   H      0      
   =   
      0      
   =         "0                   m0      
   =         0      
   =         0      
   =         0      
   =           0      
   =   6	      0      
   =         1      
   =         1                   1      
   =         &1      
   =         21      
   =         k1      
   =         z1      
   =         1      
   =   z
      1      
   =           1      
   =         1      
   =         1      
   =         1            0      1      
   =         1      
   =         02      
   =         :2                    Q2      
   =         \2      
   :         `2      
   :         e2      
   =   z
      p2      
   :         t2      
   :         z2      
   =   
      2                   2      
   =   v      2      
   :   ;      2      
   :   +      2      
   =           2      
   :         2      
   :         2      
   :         2      
   :         2                   ,3                   A3                    K3                  `3                   j3            !      w3            7      3                    3      
   =         3      
   =   z
      3      
   =   6	      3      
   =           3      
   =   r      3      
   =         4      
   =         4            H      J4      
   =   C      e4      
   =   z
      q4      
   =   6	      }4      
   =           4      
   =         4      
   =         4      
   =         4            `      4      
   =         4      
   =         4      
   =   	      4      
   =         5      
   =   O      5      
   =         ?             V                                                               `                                      j            o                           j            o      g            y                                                                                                                        
   8               
   8               
   8         +      
   8         7      
   8         C      
   8         O      
   8         [      
   8         g      
   8         s      
   8               
   8               
   8               
   8               
   8               
   8               
   8               
   8               
   8               
   8               
   8               
   8               
   8               
   8               
   8         '      
   8         `                  )	            &      	                  	                  
                  o
                  
            :                                    O      :                  a                  o      
   8         {      
   8               
   8               
   8               
   8                                       
      -            
                  :                  1      (
            :      c
            M      
                  
                  	                  )                  D            
      w            
                  
                  H                                                            3                  l            L                                    a                                          !                  H                  e                              -	                  	                                    	      ,            
      e                                
                                      
                          
            
      *            
      L                    }            
                                                                                                  P                  t                                                                            <                                                                
   8                                                      
             @                           #             h                   t                                                                                                                        f                                                                  :                  :                                                       v
      &            
      6                  F                  c            
      u            a                                                      	                  
                                                                                $                    /                    "       
   >          &       
   >   1       *       
   >   T       .       
   >   }       2       
   >          6       
   >          :       
   >          >       
   >          H       
   >          M       
   >          R       
   >          W       
   >         \       
   >         a       
   >         f       
   >         k       
   >   %      p       
   >   3      u       
   >   I      z       
   >   X             
   >   g             
   >   v             
   >                
   >                
   >                
   >                
   >                
   >                
   >                
   >                
   >                
   >                
   >                
   >                
   >                
   >                              X
                                          4                    x             @                            .symtab .strtab .shstrtab .rela.text .data .bss .rela.rodata .rodata.str1.8 .rodata.str1.1 .rela.text.unlikely .rela.debug_info .debug_abbrev .rela.debug_loclists .rela.debug_aranges .rela.debug_rnglists .rela.debug_line .debug_str .debug_line_str .comment .note.GNU-stack .rela.eh_frame                                                                                              @       ~                                   @                     `                          &                                                          ,                                                          6                                                         1      @                                               >      2               h                                  M      2                                                 a                     "                                    \      @                               	                 u                      '      5                             p      @               а      @J                                                CP                                                         T                                         @                     h
                                                j      @                                    @               x     H                                                 k      9                                   @                                                                    >n      i
                                   @                    x                                0               {                                        0               -      #                                  0               P      (                                                  x                                                         x                                         @               P     `                                                 X      H	         ?                 	                                                                                    !                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       .   l  ..    plugins j filters                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   o`j  .     ..  k $ nbdkit-blocksize-filter.so  l $ nbdkit-blocksize-filter.la  n , !nbdkit-blocksize-policy-filter.so   o , !nbdkit-blocksize-policy-filter.la   q   nbdkit-cache-filter.so  r   nbdkit-cache-filter.la  t ( nbdkit-cacheextents-filter.so   u ( nbdkit-cacheextents-filter.la   w $ nbdkit-checkwrite-filter.so x $ nbdkit-checkwrite-filter.la z  nbdkit-cow-filter.so{  nbdkit-cow-filter.la} $ nbdkit-ddrescue-filter.so   ~ $ nbdkit-ddrescue-filter.la      nbdkit-delay-filter.so     nbdkit-delay-filter.la     nbdkit-error-filter.so     nbdkit-error-filter.la     nbdkit-evil-filter.so      nbdkit-evil-filter.la    $ nbdkit-exitlast-filter.so    $ nbdkit-exitlast-filter.la    $ nbdkit-exitwhen-filter.so    $ nbdkit-exitwhen-filter.la    $ nbdkit-exportname-filter.so  $ nbdkit-exportname-filter.la  $ nbdkit-extentlist-filter.so  $ nbdkit-extentlist-filter.la   nbdkit-fua-filter.so  nbdkit-fua-filter.la  nbdkit-ip-filter.so   nbdkit-ip-filter.la    nbdkit-limit-filter.so     nbdkit-limit-filter.la    nbdkit-log-filter.so  nbdkit-log-filter.la $ nbdkit-multi-conn-filter.so  $ nbdkit-multi-conn-filter.la    nbdkit-nocache-filter.so   nbdkit-nocache-filter.la $ nbdkit-noextents-filter.so   $ nbdkit-noextents-filter.la   $ nbdkit-nofilter-filter.so    $ nbdkit-nofilter-filter.la    $ nbdkit-noparallel-filter.so  $ nbdkit-noparallel-filter.la    nbdkit-nozero-filter.so    nbdkit-nozero-filter.la    nbdkit-offset-filter.so    nbdkit-offset-filter.la  $ nbdkit-openonce-filter.so    $ nbdkit-openonce-filter.la    $ nbdkit-partition-filter.so   $ nbdkit-partition-filter.la     nbdkit-pause-filter.so     nbdkit-pause-filter.la     nbdkit-protect-filter.so   nbdkit-protect-filter.la $ nbdkit-qcow2dec-filter.so    $ nbdkit-qcow2dec-filter.la      nbdkit-rate-filter.so      nbdkit-rate-filter.la    $ nbdkit-readahead-filter.so   $ nbdkit-readahead-filter.la   $ nbdkit-readonly-filter.so    $ nbdkit-readonly-filter.la      nbdkit-retry-filter.so     nbdkit-retry-filter.la   ( nbdkit-retry-request-filter.so   ( nbdkit-retry-request-filter.la   $ nbdkit-rotational-filter.so  $ nbdkit-rotational-filter.la    nbdkit-scan-filter.so      nbdkit-scan-filter.la    $ nbdkit-spinning-filter.so    $ nbdkit-spinning-filter.la      nbdkit-stats-filter.so     nbdkit-stats-filter.la     nbdkit-swab-filter.so      nbdkit-swab-filter.la     nbdkit-tar-filter.so  nbdkit-tar-filter.la $ nbdkit-time-limit-filter.so  $ nbdkit-time-limit-filter.la  ( nbdkit-tls-fallback-filter.so    ( nbdkit-tls-fallback-filter.la    $ nbdkit-truncate-filter.so    @nbdkit-truncate-filter.la                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     =x  .   f  ..   versions                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  ޗFf   .     ..    AUTHORS G  LICENSE +  index.js  parse.js  scan.js 5 package.json                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              3<  .     ..    bin n  man   	cssesc.js     package.json  	README.md   o LICENSE-MIT.txt                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       ް  .     ..   cssesc                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    %  .     ..    gyp   LICENSE   src   lib   
addon.gypi    bin P ( .release-please-manifest.json     package.jsonJ $ release-please-config.json  x  CHANGELOG.md  CONTRIBUTING.md   	README.md     SECURITY.md ^ macOS_Catalina_acid_test.sh                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       ތN  .     ..  O  LICENSE   lib  package.json                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  meP  .     ..  Q  license V  index.jsW   binary-extensions.json   package.json                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              rDRR  .     ..  S  LICENSE W  index.js package.json                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              1T  .     ..  U  license   source   package.json                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              kV  .     ..  W  LICENSE   	chownr.js    package.json                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          GeX  .     ..  Y  LICENSE ]  index.js  package.jsonN vendors.json                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          ޵#eZ  .     ..  [  LICENSE ^  dist package.json                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  ލ|!i\  .     ..  ]  license `  index.js package.json                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              aQ^  .     ..  _  license   color.jsa  index.js  test.js  package.json                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              ޴k`  .     ..  a  LICENSE b  lib  package.json                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  ހDXXb  .     ..  c  LICENSE   conversions.js  d  index.jsr  route.js package.json                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      fd  .     ..  e  LICENSE e  index.js package.json                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              Wzf  .     ..  g  LICENSE f  index.js package.json                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              sCkh  .     ..  i  LICENSE j  node_modulesg  lib g  index.js package.json                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              
j  .   h  ..  k  which   w .bin                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      އ~wk  .   j  ..  l  LICENSE j  bin ?  which.js  package.json 	README.md                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 6*m  .     ..  n  LICENSE   src h  node_modules package.json                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              /ho  .     ..  p  LICENSE k  lib B  distx  
runtime.js    package.json~  CONTRIBUTING.md 
 trelease-notes.md                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  >C}q  .     ..  r  LICENSE c  lib   test package.json                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      ޿}s  .     ..  t  license q  index.js package.json                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              >)A(u  .     ..  v  LICENSE \  dist package.json                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  ޻4Aw  .     ..  x  LICENSE W  dist package.json                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  Ksy  .     ..  z  LICENSE v  lib  package.json                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  ކN@{  .     ..  |  LICENSE   dist  package.json 	README.md                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 O}  .     ..  ~  LICENSE   clone.js  graceful-fs.js  s  legacy-streams.js     polyfills.js tpackage.json                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      ei  .     ..    LICENSE   lib  package.json                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  UdЁ  .     ..    LICENSE {  index.js package.json                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              ޖsǃ  .     ..    LICENSE |  dist package.json                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  ޲-1  .     ..    LICENSE ~  dist package.json                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  ^g  .     ..    LICENSE   lib    	encodings    package.json                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                .     ..    LICENSE   lib  package.json                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  0  .     ..    license   index.js package.json                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              B_>