/*
 * elfgcchack.h: hack by Arjan van de Ven <arjanv@redhat.com> to speed
 *               up the code when using gcc for call within the library.
 *
 * Based on the analysis http://people.redhat.com/drepper/dsohowto.pdf
 * from Ulrich drepper. Rewritten to be generated from the XML description
 * file for libxml2 API
 * autogenerated with xsltproc doc/elfgcchack.xsl doc/libxml2-api.xml
 */

#ifdef IN_LIBXML
#ifdef __GNUC__
#ifdef PIC
#ifdef linux
#if (__GNUC__ == 3 && __GNUC_MINOR__ >= 3) || (__GNUC__ > 3)

#include "libxml/c14n.h"
#include "libxml/catalog.h"
#include "libxml/chvalid.h"
#include "libxml/debugXML.h"
#include "libxml/dict.h"
#include "libxml/DOCBparser.h"
#include "libxml/encoding.h"
#include "libxml/entities.h"
#include "libxml/globals.h"
#include "libxml/hash.h"
#include "libxml/HTMLparser.h"
#include "libxml/HTMLtree.h"
#include "libxml/list.h"
#include "libxml/nanoftp.h"
#include "libxml/nanohttp.h"
#include "libxml/parser.h"
#include "libxml/parserInternals.h"
#include "libxml/pattern.h"
#include "libxml/relaxng.h"
#include "libxml/SAX2.h"
#include "libxml/SAX.h"
#include "libxml/schemasInternals.h"
#include "libxml/schematron.h"
#include "libxml/threads.h"
#include "libxml/tree.h"
#include "libxml/uri.h"
#include "libxml/valid.h"
#include "libxml/xinclude.h"
#include "libxml/xlink.h"
#include "libxml/xmlautomata.h"
#include "libxml/xmlerror.h"
#include "libxml/xmlexports.h"
#include "libxml/xmlIO.h"
#include "libxml/xmlmemory.h"
#include "libxml/xmlreader.h"
#include "libxml/xmlregexp.h"
#include "libxml/xmlsave.h"
#include "libxml/xmlschemas.h"
#include "libxml/xmlschemastypes.h"
#include "libxml/xmlstring.h"
#include "libxml/xmlunicode.h"
#include "libxml/xmlversion.h"
#include "libxml/xmlwriter.h"
#include "libxml/xpath.h"
#include "libxml/xpathInternals.h"
#include "libxml/xpointer.h"
#include "libxml/xmlmodule.h"

/* special hot spot not exported ones */

#ifdef bottom_globals
#undef __xmlGenericError
extern __typeof (__xmlGenericError) __xmlGenericError __attribute((alias("__xmlGenericError__internal_alias")));
#else
#ifndef __xmlGenericError
extern __typeof (__xmlGenericError) __xmlGenericError__internal_alias __attribute((visibility("hidden")));
#define __xmlGenericError __xmlGenericError__internal_alias
#endif
#endif

#ifdef bottom_globals
#undef __xmlGenericErrorContext
extern __typeof (__xmlGenericErrorContext) __xmlGenericErrorContext __attribute((alias("__xmlGenericErrorContext__internal_alias")));
#else
#ifndef __xmlGenericErrorContext
extern __typeof (__xmlGenericErrorContext) __xmlGenericErrorContext__internal_alias __attribute((visibility("hidden")));
#define __xmlGenericErrorContext __xmlGenericErrorContext__internal_alias
#endif
#endif

/* list generated from libxml2-api.xml */
#if defined(LIBXML_DOCB_ENABLED)
#ifdef bottom_DOCBparser
#undef docbCreatePushParserCtxt
extern __typeof (docbCreatePushParserCtxt) docbCreatePushParserCtxt __attribute((alias("docbCreatePushParserCtxt__internal_alias")));
#else
#ifndef docbCreatePushParserCtxt
extern __typeof (docbCreatePushParserCtxt) docbCreatePushParserCtxt__internal_alias __attribute((visibility("hidden")));
#define docbCreatePushParserCtxt docbCreatePushParserCtxt__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_HTML_ENABLED)
#ifdef bottom_HTMLparser
#undef htmlAttrAllowed
extern __typeof (htmlAttrAllowed) htmlAttrAllowed __attribute((alias("htmlAttrAllowed__internal_alias")));
#else
#ifndef htmlAttrAllowed
extern __typeof (htmlAttrAllowed) htmlAttrAllowed__internal_alias __attribute((visibility("hidden")));
#define htmlAttrAllowed htmlAttrAllowed__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_HTML_ENABLED)
#ifdef bottom_HTMLparser
#undef htmlAutoCloseTag
extern __typeof (htmlAutoCloseTag) htmlAutoCloseTag __attribute((alias("htmlAutoCloseTag__internal_alias")));
#else
#ifndef htmlAutoCloseTag
extern __typeof (htmlAutoCloseTag) htmlAutoCloseTag__internal_alias __attribute((visibility("hidden")));
#define htmlAutoCloseTag htmlAutoCloseTag__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_HTML_ENABLED)
#ifdef bottom_HTMLparser
#undef htmlCreateFileParserCtxt
extern __typeof (htmlCreateFileParserCtxt) htmlCreateFileParserCtxt __attribute((alias("htmlCreateFileParserCtxt__internal_alias")));
#else
#ifndef htmlCreateFileParserCtxt
extern __typeof (htmlCreateFileParserCtxt) htmlCreateFileParserCtxt__internal_alias __attribute((visibility("hidden")));
#define htmlCreateFileParserCtxt htmlCreateFileParserCtxt__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_HTML_ENABLED)
#ifdef bottom_HTMLparser
#undef htmlCreateMemoryParserCtxt
extern __typeof (htmlCreateMemoryParserCtxt) htmlCreateMemoryParserCtxt __attribute((alias("htmlCreateMemoryParserCtxt__internal_alias")));
#else
#ifndef htmlCreateMemoryParserCtxt
extern __typeof (htmlCreateMemoryParserCtxt) htmlCreateMemoryParserCtxt__internal_alias __attribute((visibility("hidden")));
#define htmlCreateMemoryParserCtxt htmlCreateMemoryParserCtxt__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_HTML_ENABLED) && defined(LIBXML_PUSH_ENABLED)
#ifdef bottom_HTMLparser
#undef htmlCreatePushParserCtxt
extern __typeof (htmlCreatePushParserCtxt) htmlCreatePushParserCtxt __attribute((alias("htmlCreatePushParserCtxt__internal_alias")));
#else
#ifndef htmlCreatePushParserCtxt
extern __typeof (htmlCreatePushParserCtxt) htmlCreatePushParserCtxt__internal_alias __attribute((visibility("hidden")));
#define htmlCreatePushParserCtxt htmlCreatePushParserCtxt__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_HTML_ENABLED)
#ifdef bottom_HTMLparser
#undef htmlCtxtReadDoc
extern __typeof (htmlCtxtReadDoc) htmlCtxtReadDoc __attribute((alias("htmlCtxtReadDoc__internal_alias")));
#else
#ifndef htmlCtxtReadDoc
extern __typeof (htmlCtxtReadDoc) htmlCtxtReadDoc__internal_alias __attribute((visibility("hidden")));
#define htmlCtxtReadDoc htmlCtxtReadDoc__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_HTML_ENABLED)
#ifdef bottom_HTMLparser
#undef htmlCtxtReadFd
extern __typeof (htmlCtxtReadFd) htmlCtxtReadFd __attribute((alias("htmlCtxtReadFd__internal_alias")));
#else
#ifndef htmlCtxtReadFd
extern __typeof (htmlCtxtReadFd) htmlCtxtReadFd__internal_alias __attribute((visibility("hidden")));
#define htmlCtxtReadFd htmlCtxtReadFd__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_HTML_ENABLED)
#ifdef bottom_HTMLparser
#undef htmlCtxtReadFile
extern __typeof (htmlCtxtReadFile) htmlCtxtReadFile __attribute((alias("htmlCtxtReadFile__internal_alias")));
#else
#ifndef htmlCtxtReadFile
extern __typeof (htmlCtxtReadFile) htmlCtxtReadFile__internal_alias __attribute((visibility("hidden")));
#define htmlCtxtReadFile htmlCtxtReadFile__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_HTML_ENABLED)
#ifdef bottom_HTMLparser
#undef htmlCtxtReadIO
extern __typeof (htmlCtxtReadIO) htmlCtxtReadIO __attribute((alias("htmlCtxtReadIO__internal_alias")));
#else
#ifndef htmlCtxtReadIO
extern __typeof (htmlCtxtReadIO) htmlCtxtReadIO__internal_alias __attribute((visibility("hidden")));
#define htmlCtxtReadIO htmlCtxtReadIO__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_HTML_ENABLED)
#ifdef bottom_HTMLparser
#undef htmlCtxtReadMemory
extern __typeof (htmlCtxtReadMemory) htmlCtxtReadMemory __attribute((alias("htmlCtxtReadMemory__internal_alias")));
#else
#ifndef htmlCtxtReadMemory
extern __typeof (htmlCtxtReadMemory) htmlCtxtReadMemory__internal_alias __attribute((visibility("hidden")));
#define htmlCtxtReadMemory htmlCtxtReadMemory__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_HTML_ENABLED)
#ifdef bottom_HTMLparser
#undef htmlCtxtReset
extern __typeof (htmlCtxtReset) htmlCtxtReset __attribute((alias("htmlCtxtReset__internal_alias")));
#else
#ifndef htmlCtxtReset
extern __typeof (htmlCtxtReset) htmlCtxtReset__internal_alias __attribute((visibility("hidden")));
#define htmlCtxtReset htmlCtxtReset__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_HTML_ENABLED)
#ifdef bottom_HTMLparser
#undef htmlCtxtUseOptions
extern __typeof (htmlCtxtUseOptions) htmlCtxtUseOptions __attribute((alias("htmlCtxtUseOptions__internal_alias")));
#else
#ifndef htmlCtxtUseOptions
extern __typeof (htmlCtxtUseOptions) htmlCtxtUseOptions__internal_alias __attribute((visibility("hidden")));
#define htmlCtxtUseOptions htmlCtxtUseOptions__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_HTML_ENABLED)
#ifdef bottom_SAX2
#undef htmlDefaultSAXHandlerInit
extern __typeof (htmlDefaultSAXHandlerInit) htmlDefaultSAXHandlerInit __attribute((alias("htmlDefaultSAXHandlerInit__internal_alias")));
#else
#ifndef htmlDefaultSAXHandlerInit
extern __typeof (htmlDefaultSAXHandlerInit) htmlDefaultSAXHandlerInit__internal_alias __attribute((visibility("hidden")));
#define htmlDefaultSAXHandlerInit htmlDefaultSAXHandlerInit__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_HTML_ENABLED) && defined(LIBXML_OUTPUT_ENABLED)
#ifdef bottom_HTMLtree
#undef htmlDocContentDumpFormatOutput
extern __typeof (htmlDocContentDumpFormatOutput) htmlDocContentDumpFormatOutput __attribute((alias("htmlDocContentDumpFormatOutput__internal_alias")));
#else
#ifndef htmlDocContentDumpFormatOutput
extern __typeof (htmlDocContentDumpFormatOutput) htmlDocContentDumpFormatOutput__internal_alias __attribute((visibility("hidden")));
#define htmlDocContentDumpFormatOutput htmlDocContentDumpFormatOutput__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_HTML_ENABLED) && defined(LIBXML_OUTPUT_ENABLED)
#ifdef bottom_HTMLtree
#undef htmlDocContentDumpOutput
extern __typeof (htmlDocContentDumpOutput) htmlDocContentDumpOutput __attribute((alias("htmlDocContentDumpOutput__internal_alias")));
#else
#ifndef htmlDocContentDumpOutput
extern __typeof (htmlDocContentDumpOutput) htmlDocContentDumpOutput__internal_alias __attribute((visibility("hidden")));
#define htmlDocContentDumpOutput htmlDocContentDumpOutput__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_HTML_ENABLED) && defined(LIBXML_OUTPUT_ENABLED)
#ifdef bottom_HTMLtree
#undef htmlDocDump
extern __typeof (htmlDocDump) htmlDocDump __attribute((alias("htmlDocDump__internal_alias")));
#else
#ifndef htmlDocDump
extern __typeof (htmlDocDump) htmlDocDump__internal_alias __attribute((visibility("hidden")));
#define htmlDocDump htmlDocDump__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_HTML_ENABLED) && defined(LIBXML_OUTPUT_ENABLED)
#ifdef bottom_HTMLtree
#undef htmlDocDumpMemory
extern __typeof (htmlDocDumpMemory) htmlDocDumpMemory __attribute((alias("htmlDocDumpMemory__internal_alias")));
#else
#ifndef htmlDocDumpMemory
extern __typeof (htmlDocDumpMemory) htmlDocDumpMemory__internal_alias __attribute((visibility("hidden")));
#define htmlDocDumpMemory htmlDocDumpMemory__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_HTML_ENABLED)
#ifdef bottom_HTMLparser
#undef htmlElementAllowedHere
extern __typeof (htmlElementAllowedHere) htmlElementAllowedHere __attribute((alias("htmlElementAllowedHere__internal_alias")));
#else
#ifndef htmlElementAllowedHere
extern __typeof (htmlElementAllowedHere) htmlElementAllowedHere__internal_alias __attribute((visibility("hidden")));
#define htmlElementAllowedHere htmlElementAllowedHere__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_HTML_ENABLED)
#ifdef bottom_HTMLparser
#undef htmlElementStatusHere
extern __typeof (htmlElementStatusHere) htmlElementStatusHere __attribute((alias("htmlElementStatusHere__internal_alias")));
#else
#ifndef htmlElementStatusHere
extern __typeof (htmlElementStatusHere) htmlElementStatusHere__internal_alias __attribute((visibility("hidden")));
#define htmlElementStatusHere htmlElementStatusHere__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_HTML_ENABLED)
#ifdef bottom_HTMLparser
#undef htmlEncodeEntities
extern __typeof (htmlEncodeEntities) htmlEncodeEntities __attribute((alias("htmlEncodeEntities__internal_alias")));
#else
#ifndef htmlEncodeEntities
extern __typeof (htmlEncodeEntities) htmlEncodeEntities__internal_alias __attribute((visibility("hidden")));
#define htmlEncodeEntities htmlEncodeEntities__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_HTML_ENABLED)
#ifdef bottom_HTMLparser
#undef htmlEntityLookup
extern __typeof (htmlEntityLookup) htmlEntityLookup __attribute((alias("htmlEntityLookup__internal_alias")));
#else
#ifndef htmlEntityLookup
extern __typeof (htmlEntityLookup) htmlEntityLookup__internal_alias __attribute((visibility("hidden")));
#define htmlEntityLookup htmlEntityLookup__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_HTML_ENABLED)
#ifdef bottom_HTMLparser
#undef htmlEntityValueLookup
extern __typeof (htmlEntityValueLookup) htmlEntityValueLookup __attribute((alias("htmlEntityValueLookup__internal_alias")));
#else
#ifndef htmlEntityValueLookup
extern __typeof (htmlEntityValueLookup) htmlEntityValueLookup__internal_alias __attribute((visibility("hidden")));
#define htmlEntityValueLookup htmlEntityValueLookup__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_HTML_ENABLED)
#ifdef bottom_HTMLparser
#undef htmlFreeParserCtxt
extern __typeof (htmlFreeParserCtxt) htmlFreeParserCtxt __attribute((alias("htmlFreeParserCtxt__internal_alias")));
#else
#ifndef htmlFreeParserCtxt
extern __typeof (htmlFreeParserCtxt) htmlFreeParserCtxt__internal_alias __attribute((visibility("hidden")));
#define htmlFreeParserCtxt htmlFreeParserCtxt__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_HTML_ENABLED)
#ifdef bottom_HTMLtree
#undef htmlGetMetaEncoding
extern __typeof (htmlGetMetaEncoding) htmlGetMetaEncoding __attribute((alias("htmlGetMetaEncoding__internal_alias")));
#else
#ifndef htmlGetMetaEncoding
extern __typeof (htmlGetMetaEncoding) htmlGetMetaEncoding__internal_alias __attribute((visibility("hidden")));
#define htmlGetMetaEncoding htmlGetMetaEncoding__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_HTML_ENABLED)
#ifdef bottom_HTMLparser
#undef htmlHandleOmittedElem
extern __typeof (htmlHandleOmittedElem) htmlHandleOmittedElem __attribute((alias("htmlHandleOmittedElem__internal_alias")));
#else
#ifndef htmlHandleOmittedElem
extern __typeof (htmlHandleOmittedElem) htmlHandleOmittedElem__internal_alias __attribute((visibility("hidden")));
#define htmlHandleOmittedElem htmlHandleOmittedElem__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_HTML_ENABLED)
#ifdef bottom_HTMLparser
#undef htmlInitAutoClose
extern __typeof (htmlInitAutoClose) htmlInitAutoClose __attribute((alias("htmlInitAutoClose__internal_alias")));
#else
#ifndef htmlInitAutoClose
extern __typeof (htmlInitAutoClose) htmlInitAutoClose__internal_alias __attribute((visibility("hidden")));
#define htmlInitAutoClose htmlInitAutoClose__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_HTML_ENABLED)
#ifdef bottom_HTMLparser
#undef htmlIsAutoClosed
extern __typeof (htmlIsAutoClosed) htmlIsAutoClosed __attribute((alias("htmlIsAutoClosed__internal_alias")));
#else
#ifndef htmlIsAutoClosed
extern __typeof (htmlIsAutoClosed) htmlIsAutoClosed__internal_alias __attribute((visibility("hidden")));
#define htmlIsAutoClosed htmlIsAutoClosed__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_HTML_ENABLED)
#ifdef bottom_HTMLtree
#undef htmlIsBooleanAttr
extern __typeof (htmlIsBooleanAttr) htmlIsBooleanAttr __attribute((alias("htmlIsBooleanAttr__internal_alias")));
#else
#ifndef htmlIsBooleanAttr
extern __typeof (htmlIsBooleanAttr) htmlIsBooleanAttr__internal_alias __attribute((visibility("hidden")));
#define htmlIsBooleanAttr htmlIsBooleanAttr__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_HTML_ENABLED)
#ifdef bottom_HTMLparser
#undef htmlIsScriptAttribute
extern __typeof (htmlIsScriptAttribute) htmlIsScriptAttribute __attribute((alias("htmlIsScriptAttribute__internal_alias")));
#else
#ifndef htmlIsScriptAttribute
extern __typeof (htmlIsScriptAttribute) htmlIsScriptAttribute__internal_alias __attribute((visibility("hidden")));
#define htmlIsScriptAttribute htmlIsScriptAttribute__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_HTML_ENABLED)
#ifdef bottom_HTMLparser
#undef htmlNewDoc
extern __typeof (htmlNewDoc) htmlNewDoc __attribute((alias("htmlNewDoc__internal_alias")));
#else
#ifndef htmlNewDoc
extern __typeof (htmlNewDoc) htmlNewDoc__internal_alias __attribute((visibility("hidden")));
#define htmlNewDoc htmlNewDoc__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_HTML_ENABLED)
#ifdef bottom_HTMLparser
#undef htmlNewDocNoDtD
extern __typeof (htmlNewDocNoDtD) htmlNewDocNoDtD __attribute((alias("htmlNewDocNoDtD__internal_alias")));
#else
#ifndef htmlNewDocNoDtD
extern __typeof (htmlNewDocNoDtD) htmlNewDocNoDtD__internal_alias __attribute((visibility("hidden")));
#define htmlNewDocNoDtD htmlNewDocNoDtD__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_HTML_ENABLED) && defined(LIBXML_OUTPUT_ENABLED)
#ifdef bottom_HTMLtree
#undef htmlNodeDump
extern __typeof (htmlNodeDump) htmlNodeDump __attribute((alias("htmlNodeDump__internal_alias")));
#else
#ifndef htmlNodeDump
extern __typeof (htmlNodeDump) htmlNodeDump__internal_alias __attribute((visibility("hidden")));
#define htmlNodeDump htmlNodeDump__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_HTML_ENABLED) && defined(LIBXML_OUTPUT_ENABLED)
#ifdef bottom_HTMLtree
#undef htmlNodeDumpFile
extern __typeof (htmlNodeDumpFile) htmlNodeDumpFile __attribute((alias("htmlNodeDumpFile__internal_alias")));
#else
#ifndef htmlNodeDumpFile
extern __typeof (htmlNodeDumpFile) htmlNodeDumpFile__internal_alias __attribute((visibility("hidden")));
#define htmlNodeDumpFile htmlNodeDumpFile__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_HTML_ENABLED) && defined(LIBXML_OUTPUT_ENABLED)
#ifdef bottom_HTMLtree
#undef htmlNodeDumpFileFormat
extern __typeof (htmlNodeDumpFileFormat) htmlNodeDumpFileFormat __attribute((alias("htmlNodeDumpFileFormat__internal_alias")));
#else
#ifndef htmlNodeDumpFileFormat
extern __typeof (htmlNodeDumpFileFormat) htmlNodeDumpFileFormat__internal_alias __attribute((visibility("hidden")));
#define htmlNodeDumpFileFormat htmlNodeDumpFileFormat__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_HTML_ENABLED) && defined(LIBXML_OUTPUT_ENABLED)
#ifdef bottom_HTMLtree
#undef htmlNodeDumpFormatOutput
extern __typeof (htmlNodeDumpFormatOutput) htmlNodeDumpFormatOutput __attribute((alias("htmlNodeDumpFormatOutput__internal_alias")));
#else
#ifndef htmlNodeDumpFormatOutput
extern __typeof (htmlNodeDumpFormatOutput) htmlNodeDumpFormatOutput__internal_alias __attribute((visibility("hidden")));
#define htmlNodeDumpFormatOutput htmlNodeDumpFormatOutput__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_HTML_ENABLED) && defined(LIBXML_OUTPUT_ENABLED)
#ifdef bottom_HTMLtree
#undef htmlNodeDumpOutput
extern __typeof (htmlNodeDumpOutput) htmlNodeDumpOutput __attribute((alias("htmlNodeDumpOutput__internal_alias")));
#else
#ifndef htmlNodeDumpOutput
extern __typeof (htmlNodeDumpOutput) htmlNodeDumpOutput__internal_alias __attribute((visibility("hidden")));
#define htmlNodeDumpOutput htmlNodeDumpOutput__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_HTML_ENABLED)
#ifdef bottom_HTMLparser
#undef htmlNodeStatus
extern __typeof (htmlNodeStatus) htmlNodeStatus __attribute((alias("htmlNodeStatus__internal_alias")));
#else
#ifndef htmlNodeStatus
extern __typeof (htmlNodeStatus) htmlNodeStatus__internal_alias __attribute((visibility("hidden")));
#define htmlNodeStatus htmlNodeStatus__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_HTML_ENABLED)
#ifdef bottom_HTMLparser
#undef htmlParseCharRef
extern __typeof (htmlParseCharRef) htmlParseCharRef __attribute((alias("htmlParseCharRef__internal_alias")));
#else
#ifndef htmlParseCharRef
extern __typeof (htmlParseCharRef) htmlParseCharRef__internal_alias __attribute((visibility("hidden")));
#define htmlParseCharRef htmlParseCharRef__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_HTML_ENABLED) && defined(LIBXML_PUSH_ENABLED)
#ifdef bottom_HTMLparser
#undef htmlParseChunk
extern __typeof (htmlParseChunk) htmlParseChunk __attribute((alias("htmlParseChunk__internal_alias")));
#else
#ifndef htmlParseChunk
extern __typeof (htmlParseChunk) htmlParseChunk__internal_alias __attribute((visibility("hidden")));
#define htmlParseChunk htmlParseChunk__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_HTML_ENABLED)
#ifdef bottom_HTMLparser
#undef htmlParseDoc
extern __typeof (htmlParseDoc) htmlParseDoc __attribute((alias("htmlParseDoc__internal_alias")));
#else
#ifndef htmlParseDoc
extern __typeof (htmlParseDoc) htmlParseDoc__internal_alias __attribute((visibility("hidden")));
#define htmlParseDoc htmlParseDoc__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_HTML_ENABLED)
#ifdef bottom_HTMLparser
#undef htmlParseDocument
extern __typeof (htmlParseDocument) htmlParseDocument __attribute((alias("htmlParseDocument__internal_alias")));
#else
#ifndef htmlParseDocument
extern __typeof (htmlParseDocument) htmlParseDocument__internal_alias __attribute((visibility("hidden")));
#define htmlParseDocument htmlParseDocument__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_HTML_ENABLED)
#ifdef bottom_HTMLparser
#undef htmlParseElement
extern __typeof (htmlParseElement) htmlParseElement __attribute((alias("htmlParseElement__internal_alias")));
#else
#ifndef htmlParseElement
extern __typeof (htmlParseElement) htmlParseElement__internal_alias __attribute((visibility("hidden")));
#define htmlParseElement htmlParseElement__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_HTML_ENABLED)
#ifdef bottom_HTMLparser
#undef htmlParseEntityRef
extern __typeof (htmlParseEntityRef) htmlParseEntityRef __attribute((alias("htmlParseEntityRef__internal_alias")));
#else
#ifndef htmlParseEntityRef
extern __typeof (htmlParseEntityRef) htmlParseEntityRef__internal_alias __attribute((visibility("hidden")));
#define htmlParseEntityRef htmlParseEntityRef__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_HTML_ENABLED)
#ifdef bottom_HTMLparser
#undef htmlParseFile
extern __typeof (htmlParseFile) htmlParseFile __attribute((alias("htmlParseFile__internal_alias")));
#else
#ifndef htmlParseFile
extern __typeof (htmlParseFile) htmlParseFile__internal_alias __attribute((visibility("hidden")));
#define htmlParseFile htmlParseFile__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_HTML_ENABLED)
#ifdef bottom_HTMLparser
#undef htmlReadDoc
extern __typeof (htmlReadDoc) htmlReadDoc __attribute((alias("htmlReadDoc__internal_alias")));
#else
#ifndef htmlReadDoc
extern __typeof (htmlReadDoc) htmlReadDoc__internal_alias __attribute((visibility("hidden")));
#define htmlReadDoc htmlReadDoc__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_HTML_ENABLED)
#ifdef bottom_HTMLparser
#undef htmlReadFd
extern __typeof (htmlReadFd) htmlReadFd __attribute((alias("htmlReadFd__internal_alias")));
#else
#ifndef htmlReadFd
extern __typeof (htmlReadFd) htmlReadFd__internal_alias __attribute((visibility("hidden")));
#define htmlReadFd htmlReadFd__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_HTML_ENABLED)
#ifdef bottom_HTMLparser
#undef htmlReadFile
extern __typeof (htmlReadFile) htmlReadFile __attribute((alias("htmlReadFile__internal_alias")));
#else
#ifndef htmlReadFile
extern __typeof (htmlReadFile) htmlReadFile__internal_alias __attribute((visibility("hidden")));
#define htmlReadFile htmlReadFile__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_HTML_ENABLED)
#ifdef bottom_HTMLparser
#undef htmlReadIO
extern __typeof (htmlReadIO) htmlReadIO __attribute((alias("htmlReadIO__internal_alias")));
#else
#ifndef htmlReadIO
extern __typeof (htmlReadIO) htmlReadIO__internal_alias __attribute((visibility("hidden")));
#define htmlReadIO htmlReadIO__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_HTML_ENABLED)
#ifdef bottom_HTMLparser
#undef htmlReadMemory
extern __typeof (htmlReadMemory) htmlReadMemory __attribute((alias("htmlReadMemory__internal_alias")));
#else
#ifndef htmlReadMemory
extern __typeof (htmlReadMemory) htmlReadMemory__internal_alias __attribute((visibility("hidden")));
#define htmlReadMemory htmlReadMemory__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_HTML_ENABLED)
#ifdef bottom_HTMLparser
#undef htmlSAXParseDoc
extern __typeof (htmlSAXParseDoc) htmlSAXParseDoc __attribute((alias("htmlSAXParseDoc__internal_alias")));
#else
#ifndef htmlSAXParseDoc
extern __typeof (htmlSAXParseDoc) htmlSAXParseDoc__internal_alias __attribute((visibility("hidden")));
#define htmlSAXParseDoc htmlSAXParseDoc__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_HTML_ENABLED)
#ifdef bottom_HTMLparser
#undef htmlSAXParseFile
extern __typeof (htmlSAXParseFile) htmlSAXParseFile __attribute((alias("htmlSAXParseFile__internal_alias")));
#else
#ifndef htmlSAXParseFile
extern __typeof (htmlSAXParseFile) htmlSAXParseFile__internal_alias __attribute((visibility("hidden")));
#define htmlSAXParseFile htmlSAXParseFile__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_HTML_ENABLED) && defined(LIBXML_OUTPUT_ENABLED)
#ifdef bottom_HTMLtree
#undef htmlSaveFile
extern __typeof (htmlSaveFile) htmlSaveFile __attribute((alias("htmlSaveFile__internal_alias")));
#else
#ifndef htmlSaveFile
extern __typeof (htmlSaveFile) htmlSaveFile__internal_alias __attribute((visibility("hidden")));
#define htmlSaveFile htmlSaveFile__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_HTML_ENABLED) && defined(LIBXML_OUTPUT_ENABLED)
#ifdef bottom_HTMLtree
#undef htmlSaveFileEnc
extern __typeof (htmlSaveFileEnc) htmlSaveFileEnc __attribute((alias("htmlSaveFileEnc__internal_alias")));
#else
#ifndef htmlSaveFileEnc
extern __typeof (htmlSaveFileEnc) htmlSaveFileEnc__internal_alias __attribute((visibility("hidden")));
#define htmlSaveFileEnc htmlSaveFileEnc__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_HTML_ENABLED) && defined(LIBXML_OUTPUT_ENABLED)
#ifdef bottom_HTMLtree
#undef htmlSaveFileFormat
extern __typeof (htmlSaveFileFormat) htmlSaveFileFormat __attribute((alias("htmlSaveFileFormat__internal_alias")));
#else
#ifndef htmlSaveFileFormat
extern __typeof (htmlSaveFileFormat) htmlSaveFileFormat__internal_alias __attribute((visibility("hidden")));
#define htmlSaveFileFormat htmlSaveFileFormat__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_HTML_ENABLED)
#ifdef bottom_HTMLtree
#undef htmlSetMetaEncoding
extern __typeof (htmlSetMetaEncoding) htmlSetMetaEncoding __attribute((alias("htmlSetMetaEncoding__internal_alias")));
#else
#ifndef htmlSetMetaEncoding
extern __typeof (htmlSetMetaEncoding) htmlSetMetaEncoding__internal_alias __attribute((visibility("hidden")));
#define htmlSetMetaEncoding htmlSetMetaEncoding__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_HTML_ENABLED)
#ifdef bottom_HTMLparser
#undef htmlTagLookup
extern __typeof (htmlTagLookup) htmlTagLookup __attribute((alias("htmlTagLookup__internal_alias")));
#else
#ifndef htmlTagLookup
extern __typeof (htmlTagLookup) htmlTagLookup__internal_alias __attribute((visibility("hidden")));
#define htmlTagLookup htmlTagLookup__internal_alias
#endif
#endif
#endif

#ifdef bottom_parser
#undef inputPop
extern __typeof (inputPop) inputPop __attribute((alias("inputPop__internal_alias")));
#else
#ifndef inputPop
extern __typeof (inputPop) inputPop__internal_alias __attribute((visibility("hidden")));
#define inputPop inputPop__internal_alias
#endif
#endif

#ifdef bottom_parser
#undef inputPush
extern __typeof (inputPush) inputPush __attribute((alias("inputPush__internal_alias")));
#else
#ifndef inputPush
extern __typeof (inputPush) inputPush__internal_alias __attribute((visibility("hidden")));
#define inputPush inputPush__internal_alias
#endif
#endif

#ifdef bottom_parser
#undef namePop
extern __typeof (namePop) namePop __attribute((alias("namePop__internal_alias")));
#else
#ifndef namePop
extern __typeof (namePop) namePop__internal_alias __attribute((visibility("hidden")));
#define namePop namePop__internal_alias
#endif
#endif

#ifdef bottom_parser
#undef namePush
extern __typeof (namePush) namePush __attribute((alias("namePush__internal_alias")));
#else
#ifndef namePush
extern __typeof (namePush) namePush__internal_alias __attribute((visibility("hidden")));
#define namePush namePush__internal_alias
#endif
#endif

#ifdef bottom_parser
#undef nodePop
extern __typeof (nodePop) nodePop __attribute((alias("nodePop__internal_alias")));
#else
#ifndef nodePop
extern __typeof (nodePop) nodePop__internal_alias __attribute((visibility("hidden")));
#define nodePop nodePop__internal_alias
#endif
#endif

#ifdef bottom_parser
#undef nodePush
extern __typeof (nodePush) nodePush __attribute((alias("nodePush__internal_alias")));
#else
#ifndef nodePush
extern __typeof (nodePush) nodePush__internal_alias __attribute((visibility("hidden")));
#define nodePush nodePush__internal_alias
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef valuePop
extern __typeof (valuePop) valuePop __attribute((alias("valuePop__internal_alias")));
#else
#ifndef valuePop
extern __typeof (valuePop) valuePop__internal_alias __attribute((visibility("hidden")));
#define valuePop valuePop__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef valuePush
extern __typeof (valuePush) valuePush __attribute((alias("valuePush__internal_alias")));
#else
#ifndef valuePush
extern __typeof (valuePush) valuePush__internal_alias __attribute((visibility("hidden")));
#define valuePush valuePush__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_CATALOG_ENABLED)
#ifdef bottom_catalog
#undef xmlACatalogAdd
extern __typeof (xmlACatalogAdd) xmlACatalogAdd __attribute((alias("xmlACatalogAdd__internal_alias")));
#else
#ifndef xmlACatalogAdd
extern __typeof (xmlACatalogAdd) xmlACatalogAdd__internal_alias __attribute((visibility("hidden")));
#define xmlACatalogAdd xmlACatalogAdd__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_CATALOG_ENABLED) && defined(LIBXML_OUTPUT_ENABLED)
#ifdef bottom_catalog
#undef xmlACatalogDump
extern __typeof (xmlACatalogDump) xmlACatalogDump __attribute((alias("xmlACatalogDump__internal_alias")));
#else
#ifndef xmlACatalogDump
extern __typeof (xmlACatalogDump) xmlACatalogDump__internal_alias __attribute((visibility("hidden")));
#define xmlACatalogDump xmlACatalogDump__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_CATALOG_ENABLED)
#ifdef bottom_catalog
#undef xmlACatalogRemove
extern __typeof (xmlACatalogRemove) xmlACatalogRemove __attribute((alias("xmlACatalogRemove__internal_alias")));
#else
#ifndef xmlACatalogRemove
extern __typeof (xmlACatalogRemove) xmlACatalogRemove__internal_alias __attribute((visibility("hidden")));
#define xmlACatalogRemove xmlACatalogRemove__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_CATALOG_ENABLED)
#ifdef bottom_catalog
#undef xmlACatalogResolve
extern __typeof (xmlACatalogResolve) xmlACatalogResolve __attribute((alias("xmlACatalogResolve__internal_alias")));
#else
#ifndef xmlACatalogResolve
extern __typeof (xmlACatalogResolve) xmlACatalogResolve__internal_alias __attribute((visibility("hidden")));
#define xmlACatalogResolve xmlACatalogResolve__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_CATALOG_ENABLED)
#ifdef bottom_catalog
#undef xmlACatalogResolvePublic
extern __typeof (xmlACatalogResolvePublic) xmlACatalogResolvePublic __attribute((alias("xmlACatalogResolvePublic__internal_alias")));
#else
#ifndef xmlACatalogResolvePublic
extern __typeof (xmlACatalogResolvePublic) xmlACatalogResolvePublic__internal_alias __attribute((visibility("hidden")));
#define xmlACatalogResolvePublic xmlACatalogResolvePublic__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_CATALOG_ENABLED)
#ifdef bottom_catalog
#undef xmlACatalogResolveSystem
extern __typeof (xmlACatalogResolveSystem) xmlACatalogResolveSystem __attribute((alias("xmlACatalogResolveSystem__internal_alias")));
#else
#ifndef xmlACatalogResolveSystem
extern __typeof (xmlACatalogResolveSystem) xmlACatalogResolveSystem__internal_alias __attribute((visibility("hidden")));
#define xmlACatalogResolveSystem xmlACatalogResolveSystem__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_CATALOG_ENABLED)
#ifdef bottom_catalog
#undef xmlACatalogResolveURI
extern __typeof (xmlACatalogResolveURI) xmlACatalogResolveURI __attribute((alias("xmlACatalogResolveURI__internal_alias")));
#else
#ifndef xmlACatalogResolveURI
extern __typeof (xmlACatalogResolveURI) xmlACatalogResolveURI__internal_alias __attribute((visibility("hidden")));
#define xmlACatalogResolveURI xmlACatalogResolveURI__internal_alias
#endif
#endif
#endif

#ifdef bottom_valid
#undef xmlAddAttributeDecl
extern __typeof (xmlAddAttributeDecl) xmlAddAttributeDecl __attribute((alias("xmlAddAttributeDecl__internal_alias")));
#else
#ifndef xmlAddAttributeDecl
extern __typeof (xmlAddAttributeDecl) xmlAddAttributeDecl__internal_alias __attribute((visibility("hidden")));
#define xmlAddAttributeDecl xmlAddAttributeDecl__internal_alias
#endif
#endif

#ifdef bottom_tree
#undef xmlAddChild
extern __typeof (xmlAddChild) xmlAddChild __attribute((alias("xmlAddChild__internal_alias")));
#else
#ifndef xmlAddChild
extern __typeof (xmlAddChild) xmlAddChild__internal_alias __attribute((visibility("hidden")));
#define xmlAddChild xmlAddChild__internal_alias
#endif
#endif

#ifdef bottom_tree
#undef xmlAddChildList
extern __typeof (xmlAddChildList) xmlAddChildList __attribute((alias("xmlAddChildList__internal_alias")));
#else
#ifndef xmlAddChildList
extern __typeof (xmlAddChildList) xmlAddChildList__internal_alias __attribute((visibility("hidden")));
#define xmlAddChildList xmlAddChildList__internal_alias
#endif
#endif

#ifdef bottom_entities
#undef xmlAddDocEntity
extern __typeof (xmlAddDocEntity) xmlAddDocEntity __attribute((alias("xmlAddDocEntity__internal_alias")));
#else
#ifndef xmlAddDocEntity
extern __typeof (xmlAddDocEntity) xmlAddDocEntity__internal_alias __attribute((visibility("hidden")));
#define xmlAddDocEntity xmlAddDocEntity__internal_alias
#endif
#endif

#ifdef bottom_entities
#undef xmlAddDtdEntity
extern __typeof (xmlAddDtdEntity) xmlAddDtdEntity __attribute((alias("xmlAddDtdEntity__internal_alias")));
#else
#ifndef xmlAddDtdEntity
extern __typeof (xmlAddDtdEntity) xmlAddDtdEntity__internal_alias __attribute((visibility("hidden")));
#define xmlAddDtdEntity xmlAddDtdEntity__internal_alias
#endif
#endif

#ifdef bottom_valid
#undef xmlAddElementDecl
extern __typeof (xmlAddElementDecl) xmlAddElementDecl __attribute((alias("xmlAddElementDecl__internal_alias")));
#else
#ifndef xmlAddElementDecl
extern __typeof (xmlAddElementDecl) xmlAddElementDecl__internal_alias __attribute((visibility("hidden")));
#define xmlAddElementDecl xmlAddElementDecl__internal_alias
#endif
#endif

#ifdef bottom_encoding
#undef xmlAddEncodingAlias
extern __typeof (xmlAddEncodingAlias) xmlAddEncodingAlias __attribute((alias("xmlAddEncodingAlias__internal_alias")));
#else
#ifndef xmlAddEncodingAlias
extern __typeof (xmlAddEncodingAlias) xmlAddEncodingAlias__internal_alias __attribute((visibility("hidden")));
#define xmlAddEncodingAlias xmlAddEncodingAlias__internal_alias
#endif
#endif

#ifdef bottom_valid
#undef xmlAddID
extern __typeof (xmlAddID) xmlAddID __attribute((alias("xmlAddID__internal_alias")));
#else
#ifndef xmlAddID
extern __typeof (xmlAddID) xmlAddID__internal_alias __attribute((visibility("hidden")));
#define xmlAddID xmlAddID__internal_alias
#endif
#endif

#ifdef bottom_tree
#undef xmlAddNextSibling
extern __typeof (xmlAddNextSibling) xmlAddNextSibling __attribute((alias("xmlAddNextSibling__internal_alias")));
#else
#ifndef xmlAddNextSibling
extern __typeof (xmlAddNextSibling) xmlAddNextSibling__internal_alias __attribute((visibility("hidden")));
#define xmlAddNextSibling xmlAddNextSibling__internal_alias
#endif
#endif

#ifdef bottom_valid
#undef xmlAddNotationDecl
extern __typeof (xmlAddNotationDecl) xmlAddNotationDecl __attribute((alias("xmlAddNotationDecl__internal_alias")));
#else
#ifndef xmlAddNotationDecl
extern __typeof (xmlAddNotationDecl) xmlAddNotationDecl__internal_alias __attribute((visibility("hidden")));
#define xmlAddNotationDecl xmlAddNotationDecl__internal_alias
#endif
#endif

#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_HTML_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)
#ifdef bottom_tree
#undef xmlAddPrevSibling
extern __typeof (xmlAddPrevSibling) xmlAddPrevSibling __attribute((alias("xmlAddPrevSibling__internal_alias")));
#else
#ifndef xmlAddPrevSibling
extern __typeof (xmlAddPrevSibling) xmlAddPrevSibling__internal_alias __attribute((visibility("hidden")));
#define xmlAddPrevSibling xmlAddPrevSibling__internal_alias
#endif
#endif
#endif

#ifdef bottom_valid
#undef xmlAddRef
extern __typeof (xmlAddRef) xmlAddRef __attribute((alias("xmlAddRef__internal_alias")));
#else
#ifndef xmlAddRef
extern __typeof (xmlAddRef) xmlAddRef__internal_alias __attribute((visibility("hidden")));
#define xmlAddRef xmlAddRef__internal_alias
#endif
#endif

#ifdef bottom_tree
#undef xmlAddSibling
extern __typeof (xmlAddSibling) xmlAddSibling __attribute((alias("xmlAddSibling__internal_alias")));
#else
#ifndef xmlAddSibling
extern __typeof (xmlAddSibling) xmlAddSibling__internal_alias __attribute((visibility("hidden")));
#define xmlAddSibling xmlAddSibling__internal_alias
#endif
#endif

#if defined(LIBXML_OUTPUT_ENABLED)
#ifdef bottom_xmlIO
#undef xmlAllocOutputBuffer
extern __typeof (xmlAllocOutputBuffer) xmlAllocOutputBuffer __attribute((alias("xmlAllocOutputBuffer__internal_alias")));
#else
#ifndef xmlAllocOutputBuffer
extern __typeof (xmlAllocOutputBuffer) xmlAllocOutputBuffer__internal_alias __attribute((visibility("hidden")));
#define xmlAllocOutputBuffer xmlAllocOutputBuffer__internal_alias
#endif
#endif
#endif

#ifdef bottom_xmlIO
#undef xmlAllocParserInputBuffer
extern __typeof (xmlAllocParserInputBuffer) xmlAllocParserInputBuffer __attribute((alias("xmlAllocParserInputBuffer__internal_alias")));
#else
#ifndef xmlAllocParserInputBuffer
extern __typeof (xmlAllocParserInputBuffer) xmlAllocParserInputBuffer__internal_alias __attribute((visibility("hidden")));
#define xmlAllocParserInputBuffer xmlAllocParserInputBuffer__internal_alias
#endif
#endif

#if defined(LIBXML_OUTPUT_ENABLED)
#ifdef bottom_xmlsave
#undef xmlAttrSerializeTxtContent
extern __typeof (xmlAttrSerializeTxtContent) xmlAttrSerializeTxtContent __attribute((alias("xmlAttrSerializeTxtContent__internal_alias")));
#else
#ifndef xmlAttrSerializeTxtContent
extern __typeof (xmlAttrSerializeTxtContent) xmlAttrSerializeTxtContent__internal_alias __attribute((visibility("hidden")));
#define xmlAttrSerializeTxtContent xmlAttrSerializeTxtContent__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_REGEXP_ENABLED) && defined(LIBXML_AUTOMATA_ENABLED)
#ifdef bottom_xmlregexp
#undef xmlAutomataCompile
extern __typeof (xmlAutomataCompile) xmlAutomataCompile __attribute((alias("xmlAutomataCompile__internal_alias")));
#else
#ifndef xmlAutomataCompile
extern __typeof (xmlAutomataCompile) xmlAutomataCompile__internal_alias __attribute((visibility("hidden")));
#define xmlAutomataCompile xmlAutomataCompile__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_REGEXP_ENABLED) && defined(LIBXML_AUTOMATA_ENABLED)
#ifdef bottom_xmlregexp
#undef xmlAutomataGetInitState
extern __typeof (xmlAutomataGetInitState) xmlAutomataGetInitState __attribute((alias("xmlAutomataGetInitState__internal_alias")));
#else
#ifndef xmlAutomataGetInitState
extern __typeof (xmlAutomataGetInitState) xmlAutomataGetInitState__internal_alias __attribute((visibility("hidden")));
#define xmlAutomataGetInitState xmlAutomataGetInitState__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_REGEXP_ENABLED) && defined(LIBXML_AUTOMATA_ENABLED)
#ifdef bottom_xmlregexp
#undef xmlAutomataIsDeterminist
extern __typeof (xmlAutomataIsDeterminist) xmlAutomataIsDeterminist __attribute((alias("xmlAutomataIsDeterminist__internal_alias")));
#else
#ifndef xmlAutomataIsDeterminist
extern __typeof (xmlAutomataIsDeterminist) xmlAutomataIsDeterminist__internal_alias __attribute((visibility("hidden")));
#define xmlAutomataIsDeterminist xmlAutomataIsDeterminist__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_REGEXP_ENABLED) && defined(LIBXML_AUTOMATA_ENABLED)
#ifdef bottom_xmlregexp
#undef xmlAutomataNewAllTrans
extern __typeof (xmlAutomataNewAllTrans) xmlAutomataNewAllTrans __attribute((alias("xmlAutomataNewAllTrans__internal_alias")));
#else
#ifndef xmlAutomataNewAllTrans
extern __typeof (xmlAutomataNewAllTrans) xmlAutomataNewAllTrans__internal_alias __attribute((visibility("hidden")));
#define xmlAutomataNewAllTrans xmlAutomataNewAllTrans__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_REGEXP_ENABLED) && defined(LIBXML_AUTOMATA_ENABLED)
#ifdef bottom_xmlregexp
#undef xmlAutomataNewCountTrans
extern __typeof (xmlAutomataNewCountTrans) xmlAutomataNewCountTrans __attribute((alias("xmlAutomataNewCountTrans__internal_alias")));
#else
#ifndef xmlAutomataNewCountTrans
extern __typeof (xmlAutomataNewCountTrans) xmlAutomataNewCountTrans__internal_alias __attribute((visibility("hidden")));
#define xmlAutomataNewCountTrans xmlAutomataNewCountTrans__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_REGEXP_ENABLED) && defined(LIBXML_AUTOMATA_ENABLED)
#ifdef bottom_xmlregexp
#undef xmlAutomataNewCountTrans2
extern __typeof (xmlAutomataNewCountTrans2) xmlAutomataNewCountTrans2 __attribute((alias("xmlAutomataNewCountTrans2__internal_alias")));
#else
#ifndef xmlAutomataNewCountTrans2
extern __typeof (xmlAutomataNewCountTrans2) xmlAutomataNewCountTrans2__internal_alias __attribute((visibility("hidden")));
#define xmlAutomataNewCountTrans2 xmlAutomataNewCountTrans2__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_REGEXP_ENABLED) && defined(LIBXML_AUTOMATA_ENABLED)
#ifdef bottom_xmlregexp
#undef xmlAutomataNewCountedTrans
extern __typeof (xmlAutomataNewCountedTrans) xmlAutomataNewCountedTrans __attribute((alias("xmlAutomataNewCountedTrans__internal_alias")));
#else
#ifndef xmlAutomataNewCountedTrans
extern __typeof (xmlAutomataNewCountedTrans) xmlAutomataNewCountedTrans__internal_alias __attribute((visibility("hidden")));
#define xmlAutomataNewCountedTrans xmlAutomataNewCountedTrans__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_REGEXP_ENABLED) && defined(LIBXML_AUTOMATA_ENABLED)
#ifdef bottom_xmlregexp
#undef xmlAutomataNewCounter
extern __typeof (xmlAutomataNewCounter) xmlAutomataNewCounter __attribute((alias("xmlAutomataNewCounter__internal_alias")));
#else
#ifndef xmlAutomataNewCounter
extern __typeof (xmlAutomataNewCounter) xmlAutomataNewCounter__internal_alias __attribute((visibility("hidden")));
#define xmlAutomataNewCounter xmlAutomataNewCounter__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_REGEXP_ENABLED) && defined(LIBXML_AUTOMATA_ENABLED)
#ifdef bottom_xmlregexp
#undef xmlAutomataNewCounterTrans
extern __typeof (xmlAutomataNewCounterTrans) xmlAutomataNewCounterTrans __attribute((alias("xmlAutomataNewCounterTrans__internal_alias")));
#else
#ifndef xmlAutomataNewCounterTrans
extern __typeof (xmlAutomataNewCounterTrans) xmlAutomataNewCounterTrans__internal_alias __attribute((visibility("hidden")));
#define xmlAutomataNewCounterTrans xmlAutomataNewCounterTrans__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_REGEXP_ENABLED) && defined(LIBXML_AUTOMATA_ENABLED)
#ifdef bottom_xmlregexp
#undef xmlAutomataNewEpsilon
extern __typeof (xmlAutomataNewEpsilon) xmlAutomataNewEpsilon __attribute((alias("xmlAutomataNewEpsilon__internal_alias")));
#else
#ifndef xmlAutomataNewEpsilon
extern __typeof (xmlAutomataNewEpsilon) xmlAutomataNewEpsilon__internal_alias __attribute((visibility("hidden")));
#define xmlAutomataNewEpsilon xmlAutomataNewEpsilon__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_REGEXP_ENABLED) && defined(LIBXML_AUTOMATA_ENABLED)
#ifdef bottom_xmlregexp
#undef xmlAutomataNewNegTrans
extern __typeof (xmlAutomataNewNegTrans) xmlAutomataNewNegTrans __attribute((alias("xmlAutomataNewNegTrans__internal_alias")));
#else
#ifndef xmlAutomataNewNegTrans
extern __typeof (xmlAutomataNewNegTrans) xmlAutomataNewNegTrans__internal_alias __attribute((visibility("hidden")));
#define xmlAutomataNewNegTrans xmlAutomataNewNegTrans__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_REGEXP_ENABLED) && defined(LIBXML_AUTOMATA_ENABLED)
#ifdef bottom_xmlregexp
#undef xmlAutomataNewOnceTrans
extern __typeof (xmlAutomataNewOnceTrans) xmlAutomataNewOnceTrans __attribute((alias("xmlAutomataNewOnceTrans__internal_alias")));
#else
#ifndef xmlAutomataNewOnceTrans
extern __typeof (xmlAutomataNewOnceTrans) xmlAutomataNewOnceTrans__internal_alias __attribute((visibility("hidden")));
#define xmlAutomataNewOnceTrans xmlAutomataNewOnceTrans__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_REGEXP_ENABLED) && defined(LIBXML_AUTOMATA_ENABLED)
#ifdef bottom_xmlregexp
#undef xmlAutomataNewOnceTrans2
extern __typeof (xmlAutomataNewOnceTrans2) xmlAutomataNewOnceTrans2 __attribute((alias("xmlAutomataNewOnceTrans2__internal_alias")));
#else
#ifndef xmlAutomataNewOnceTrans2
extern __typeof (xmlAutomataNewOnceTrans2) xmlAutomataNewOnceTrans2__internal_alias __attribute((visibility("hidden")));
#define xmlAutomataNewOnceTrans2 xmlAutomataNewOnceTrans2__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_REGEXP_ENABLED) && defined(LIBXML_AUTOMATA_ENABLED)
#ifdef bottom_xmlregexp
#undef xmlAutomataNewState
extern __typeof (xmlAutomataNewState) xmlAutomataNewState __attribute((alias("xmlAutomataNewState__internal_alias")));
#else
#ifndef xmlAutomataNewState
extern __typeof (xmlAutomataNewState) xmlAutomataNewState__internal_alias __attribute((visibility("hidden")));
#define xmlAutomataNewState xmlAutomataNewState__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_REGEXP_ENABLED) && defined(LIBXML_AUTOMATA_ENABLED)
#ifdef bottom_xmlregexp
#undef xmlAutomataNewTransition
extern __typeof (xmlAutomataNewTransition) xmlAutomataNewTransition __attribute((alias("xmlAutomataNewTransition__internal_alias")));
#else
#ifndef xmlAutomataNewTransition
extern __typeof (xmlAutomataNewTransition) xmlAutomataNewTransition__internal_alias __attribute((visibility("hidden")));
#define xmlAutomataNewTransition xmlAutomataNewTransition__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_REGEXP_ENABLED) && defined(LIBXML_AUTOMATA_ENABLED)
#ifdef bottom_xmlregexp
#undef xmlAutomataNewTransition2
extern __typeof (xmlAutomataNewTransition2) xmlAutomataNewTransition2 __attribute((alias("xmlAutomataNewTransition2__internal_alias")));
#else
#ifndef xmlAutomataNewTransition2
extern __typeof (xmlAutomataNewTransition2) xmlAutomataNewTransition2__internal_alias __attribute((visibility("hidden")));
#define xmlAutomataNewTransition2 xmlAutomataNewTransition2__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_REGEXP_ENABLED) && defined(LIBXML_AUTOMATA_ENABLED)
#ifdef bottom_xmlregexp
#undef xmlAutomataSetFinalState
extern __typeof (xmlAutomataSetFinalState) xmlAutomataSetFinalState __attribute((alias("xmlAutomataSetFinalState__internal_alias")));
#else
#ifndef xmlAutomataSetFinalState
extern __typeof (xmlAutomataSetFinalState) xmlAutomataSetFinalState__internal_alias __attribute((visibility("hidden")));
#define xmlAutomataSetFinalState xmlAutomataSetFinalState__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_DEBUG_ENABLED)
#ifdef bottom_debugXML
#undef xmlBoolToText
extern __typeof (xmlBoolToText) xmlBoolToText __attribute((alias("xmlBoolToText__internal_alias")));
#else
#ifndef xmlBoolToText
extern __typeof (xmlBoolToText) xmlBoolToText__internal_alias __attribute((visibility("hidden")));
#define xmlBoolToText xmlBoolToText__internal_alias
#endif
#endif
#endif

#ifdef bottom_tree
#undef xmlBufferAdd
extern __typeof (xmlBufferAdd) xmlBufferAdd __attribute((alias("xmlBufferAdd__internal_alias")));
#else
#ifndef xmlBufferAdd
extern __typeof (xmlBufferAdd) xmlBufferAdd__internal_alias __attribute((visibility("hidden")));
#define xmlBufferAdd xmlBufferAdd__internal_alias
#endif
#endif

#ifdef bottom_tree
#undef xmlBufferAddHead
extern __typeof (xmlBufferAddHead) xmlBufferAddHead __attribute((alias("xmlBufferAddHead__internal_alias")));
#else
#ifndef xmlBufferAddHead
extern __typeof (xmlBufferAddHead) xmlBufferAddHead__internal_alias __attribute((visibility("hidden")));
#define xmlBufferAddHead xmlBufferAddHead__internal_alias
#endif
#endif

#ifdef bottom_tree
#undef xmlBufferCCat
extern __typeof (xmlBufferCCat) xmlBufferCCat __attribute((alias("xmlBufferCCat__internal_alias")));
#else
#ifndef xmlBufferCCat
extern __typeof (xmlBufferCCat) xmlBufferCCat__internal_alias __attribute((visibility("hidden")));
#define xmlBufferCCat xmlBufferCCat__internal_alias
#endif
#endif

#ifdef bottom_tree
#undef xmlBufferCat
extern __typeof (xmlBufferCat) xmlBufferCat __attribute((alias("xmlBufferCat__internal_alias")));
#else
#ifndef xmlBufferCat
extern __typeof (xmlBufferCat) xmlBufferCat__internal_alias __attribute((visibility("hidden")));
#define xmlBufferCat xmlBufferCat__internal_alias
#endif
#endif

#ifdef bottom_tree
#undef xmlBufferContent
extern __typeof (xmlBufferContent) xmlBufferContent __attribute((alias("xmlBufferContent__internal_alias")));
#else
#ifndef xmlBufferContent
extern __typeof (xmlBufferContent) xmlBufferContent__internal_alias __attribute((visibility("hidden")));
#define xmlBufferContent xmlBufferContent__internal_alias
#endif
#endif

#ifdef bottom_tree
#undef xmlBufferCreate
extern __typeof (xmlBufferCreate) xmlBufferCreate __attribute((alias("xmlBufferCreate__internal_alias")));
#else
#ifndef xmlBufferCreate
extern __typeof (xmlBufferCreate) xmlBufferCreate__internal_alias __attribute((visibility("hidden")));
#define xmlBufferCreate xmlBufferCreate__internal_alias
#endif
#endif

#ifdef bottom_tree
#undef xmlBufferCreateSize
extern __typeof (xmlBufferCreateSize) xmlBufferCreateSize __attribute((alias("xmlBufferCreateSize__internal_alias")));
#else
#ifndef xmlBufferCreateSize
extern __typeof (xmlBufferCreateSize) xmlBufferCreateSize__internal_alias __attribute((visibility("hidden")));
#define xmlBufferCreateSize xmlBufferCreateSize__internal_alias
#endif
#endif

#ifdef bottom_tree
#undef xmlBufferCreateStatic
extern __typeof (xmlBufferCreateStatic) xmlBufferCreateStatic __attribute((alias("xmlBufferCreateStatic__internal_alias")));
#else
#ifndef xmlBufferCreateStatic
extern __typeof (xmlBufferCreateStatic) xmlBufferCreateStatic__internal_alias __attribute((visibility("hidden")));
#define xmlBufferCreateStatic xmlBufferCreateStatic__internal_alias
#endif
#endif

#ifdef bottom_tree
#undef xmlBufferDump
extern __typeof (xmlBufferDump) xmlBufferDump __attribute((alias("xmlBufferDump__internal_alias")));
#else
#ifndef xmlBufferDump
extern __typeof (xmlBufferDump) xmlBufferDump__internal_alias __attribute((visibility("hidden")));
#define xmlBufferDump xmlBufferDump__internal_alias
#endif
#endif

#ifdef bottom_tree
#undef xmlBufferEmpty
extern __typeof (xmlBufferEmpty) xmlBufferEmpty __attribute((alias("xmlBufferEmpty__internal_alias")));
#else
#ifndef xmlBufferEmpty
extern __typeof (xmlBufferEmpty) xmlBufferEmpty__internal_alias __attribute((visibility("hidden")));
#define xmlBufferEmpty xmlBufferEmpty__internal_alias
#endif
#endif

#ifdef bottom_tree
#undef xmlBufferFree
extern __typeof (xmlBufferFree) xmlBufferFree __attribute((alias("xmlBufferFree__internal_alias")));
#else
#ifndef xmlBufferFree
extern __typeof (xmlBufferFree) xmlBufferFree__internal_alias __attribute((visibility("hidden")));
#define xmlBufferFree xmlBufferFree__internal_alias
#endif
#endif

#ifdef bottom_tree
#undef xmlBufferGrow
extern __typeof (xmlBufferGrow) xmlBufferGrow __attribute((alias("xmlBufferGrow__internal_alias")));
#else
#ifndef xmlBufferGrow
extern __typeof (xmlBufferGrow) xmlBufferGrow__internal_alias __attribute((visibility("hidden")));
#define xmlBufferGrow xmlBufferGrow__internal_alias
#endif
#endif

#ifdef bottom_tree
#undef xmlBufferLength
extern __typeof (xmlBufferLength) xmlBufferLength __attribute((alias("xmlBufferLength__internal_alias")));
#else
#ifndef xmlBufferLength
extern __typeof (xmlBufferLength) xmlBufferLength__internal_alias __attribute((visibility("hidden")));
#define xmlBufferLength xmlBufferLength__internal_alias
#endif
#endif

#ifdef bottom_tree
#undef xmlBufferResize
extern __typeof (xmlBufferResize) xmlBufferResize __attribute((alias("xmlBufferResize__internal_alias")));
#else
#ifndef xmlBufferResize
extern __typeof (xmlBufferResize) xmlBufferResize__internal_alias __attribute((visibility("hidden")));
#define xmlBufferResize xmlBufferResize__internal_alias
#endif
#endif

#ifdef bottom_tree
#undef xmlBufferSetAllocationScheme
extern __typeof (xmlBufferSetAllocationScheme) xmlBufferSetAllocationScheme __attribute((alias("xmlBufferSetAllocationScheme__internal_alias")));
#else
#ifndef xmlBufferSetAllocationScheme
extern __typeof (xmlBufferSetAllocationScheme) xmlBufferSetAllocationScheme__internal_alias __attribute((visibility("hidden")));
#define xmlBufferSetAllocationScheme xmlBufferSetAllocationScheme__internal_alias
#endif
#endif

#ifdef bottom_tree
#undef xmlBufferShrink
extern __typeof (xmlBufferShrink) xmlBufferShrink __attribute((alias("xmlBufferShrink__internal_alias")));
#else
#ifndef xmlBufferShrink
extern __typeof (xmlBufferShrink) xmlBufferShrink__internal_alias __attribute((visibility("hidden")));
#define xmlBufferShrink xmlBufferShrink__internal_alias
#endif
#endif

#ifdef bottom_tree
#undef xmlBufferWriteCHAR
extern __typeof (xmlBufferWriteCHAR) xmlBufferWriteCHAR __attribute((alias("xmlBufferWriteCHAR__internal_alias")));
#else
#ifndef xmlBufferWriteCHAR
extern __typeof (xmlBufferWriteCHAR) xmlBufferWriteCHAR__internal_alias __attribute((visibility("hidden")));
#define xmlBufferWriteCHAR xmlBufferWriteCHAR__internal_alias
#endif
#endif

#ifdef bottom_tree
#undef xmlBufferWriteChar
extern __typeof (xmlBufferWriteChar) xmlBufferWriteChar __attribute((alias("xmlBufferWriteChar__internal_alias")));
#else
#ifndef xmlBufferWriteChar
extern __typeof (xmlBufferWriteChar) xmlBufferWriteChar__internal_alias __attribute((visibility("hidden")));
#define xmlBufferWriteChar xmlBufferWriteChar__internal_alias
#endif
#endif

#ifdef bottom_tree
#undef xmlBufferWriteQuotedString
extern __typeof (xmlBufferWriteQuotedString) xmlBufferWriteQuotedString __attribute((alias("xmlBufferWriteQuotedString__internal_alias")));
#else
#ifndef xmlBufferWriteQuotedString
extern __typeof (xmlBufferWriteQuotedString) xmlBufferWriteQuotedString__internal_alias __attribute((visibility("hidden")));
#define xmlBufferWriteQuotedString xmlBufferWriteQuotedString__internal_alias
#endif
#endif

#ifdef bottom_tree
#undef xmlBuildQName
extern __typeof (xmlBuildQName) xmlBuildQName __attribute((alias("xmlBuildQName__internal_alias")));
#else
#ifndef xmlBuildQName
extern __typeof (xmlBuildQName) xmlBuildQName__internal_alias __attribute((visibility("hidden")));
#define xmlBuildQName xmlBuildQName__internal_alias
#endif
#endif

#ifdef bottom_uri
#undef xmlBuildRelativeURI
extern __typeof (xmlBuildRelativeURI) xmlBuildRelativeURI __attribute((alias("xmlBuildRelativeURI__internal_alias")));
#else
#ifndef xmlBuildRelativeURI
extern __typeof (xmlBuildRelativeURI) xmlBuildRelativeURI__internal_alias __attribute((visibility("hidden")));
#define xmlBuildRelativeURI xmlBuildRelativeURI__internal_alias
#endif
#endif

#ifdef bottom_uri
#undef xmlBuildURI
extern __typeof (xmlBuildURI) xmlBuildURI __attribute((alias("xmlBuildURI__internal_alias")));
#else
#ifndef xmlBuildURI
extern __typeof (xmlBuildURI) xmlBuildURI__internal_alias __attribute((visibility("hidden")));
#define xmlBuildURI xmlBuildURI__internal_alias
#endif
#endif

#ifdef bottom_encoding
#undef xmlByteConsumed
extern __typeof (xmlByteConsumed) xmlByteConsumed __attribute((alias("xmlByteConsumed__internal_alias")));
#else
#ifndef xmlByteConsumed
extern __typeof (xmlByteConsumed) xmlByteConsumed__internal_alias __attribute((visibility("hidden")));
#define xmlByteConsumed xmlByteConsumed__internal_alias
#endif
#endif

#if defined(LIBXML_C14N_ENABLED) && defined(LIBXML_OUTPUT_ENABLED)
#ifdef bottom_c14n
#undef xmlC14NDocDumpMemory
extern __typeof (xmlC14NDocDumpMemory) xmlC14NDocDumpMemory __attribute((alias("xmlC14NDocDumpMemory__internal_alias")));
#else
#ifndef xmlC14NDocDumpMemory
extern __typeof (xmlC14NDocDumpMemory) xmlC14NDocDumpMemory__internal_alias __attribute((visibility("hidden")));
#define xmlC14NDocDumpMemory xmlC14NDocDumpMemory__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_C14N_ENABLED) && defined(LIBXML_OUTPUT_ENABLED)
#ifdef bottom_c14n
#undef xmlC14NDocSave
extern __typeof (xmlC14NDocSave) xmlC14NDocSave __attribute((alias("xmlC14NDocSave__internal_alias")));
#else
#ifndef xmlC14NDocSave
extern __typeof (xmlC14NDocSave) xmlC14NDocSave__internal_alias __attribute((visibility("hidden")));
#define xmlC14NDocSave xmlC14NDocSave__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_C14N_ENABLED) && defined(LIBXML_OUTPUT_ENABLED)
#ifdef bottom_c14n
#undef xmlC14NDocSaveTo
extern __typeof (xmlC14NDocSaveTo) xmlC14NDocSaveTo __attribute((alias("xmlC14NDocSaveTo__internal_alias")));
#else
#ifndef xmlC14NDocSaveTo
extern __typeof (xmlC14NDocSaveTo) xmlC14NDocSaveTo__internal_alias __attribute((visibility("hidden")));
#define xmlC14NDocSaveTo xmlC14NDocSaveTo__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_C14N_ENABLED) && defined(LIBXML_OUTPUT_ENABLED)
#ifdef bottom_c14n
#undef xmlC14NExecute
extern __typeof (xmlC14NExecute) xmlC14NExecute __attribute((alias("xmlC14NExecute__internal_alias")));
#else
#ifndef xmlC14NExecute
extern __typeof (xmlC14NExecute) xmlC14NExecute__internal_alias __attribute((visibility("hidden")));
#define xmlC14NExecute xmlC14NExecute__internal_alias
#endif
#endif
#endif

#ifdef bottom_uri
#undef xmlCanonicPath
extern __typeof (xmlCanonicPath) xmlCanonicPath __attribute((alias("xmlCanonicPath__internal_alias")));
#else
#ifndef xmlCanonicPath
extern __typeof (xmlCanonicPath) xmlCanonicPath__internal_alias __attribute((visibility("hidden")));
#define xmlCanonicPath xmlCanonicPath__internal_alias
#endif
#endif

#if defined(LIBXML_CATALOG_ENABLED)
#ifdef bottom_catalog
#undef xmlCatalogAdd
extern __typeof (xmlCatalogAdd) xmlCatalogAdd __attribute((alias("xmlCatalogAdd__internal_alias")));
#else
#ifndef xmlCatalogAdd
extern __typeof (xmlCatalogAdd) xmlCatalogAdd__internal_alias __attribute((visibility("hidden")));
#define xmlCatalogAdd xmlCatalogAdd__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_CATALOG_ENABLED)
#ifdef bottom_catalog
#undef xmlCatalogAddLocal
extern __typeof (xmlCatalogAddLocal) xmlCatalogAddLocal __attribute((alias("xmlCatalogAddLocal__internal_alias")));
#else
#ifndef xmlCatalogAddLocal
extern __typeof (xmlCatalogAddLocal) xmlCatalogAddLocal__internal_alias __attribute((visibility("hidden")));
#define xmlCatalogAddLocal xmlCatalogAddLocal__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_CATALOG_ENABLED)
#ifdef bottom_catalog
#undef xmlCatalogCleanup
extern __typeof (xmlCatalogCleanup) xmlCatalogCleanup __attribute((alias("xmlCatalogCleanup__internal_alias")));
#else
#ifndef xmlCatalogCleanup
extern __typeof (xmlCatalogCleanup) xmlCatalogCleanup__internal_alias __attribute((visibility("hidden")));
#define xmlCatalogCleanup xmlCatalogCleanup__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_CATALOG_ENABLED)
#ifdef bottom_catalog
#undef xmlCatalogConvert
extern __typeof (xmlCatalogConvert) xmlCatalogConvert __attribute((alias("xmlCatalogConvert__internal_alias")));
#else
#ifndef xmlCatalogConvert
extern __typeof (xmlCatalogConvert) xmlCatalogConvert__internal_alias __attribute((visibility("hidden")));
#define xmlCatalogConvert xmlCatalogConvert__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_CATALOG_ENABLED) && defined(LIBXML_OUTPUT_ENABLED)
#ifdef bottom_catalog
#undef xmlCatalogDump
extern __typeof (xmlCatalogDump) xmlCatalogDump __attribute((alias("xmlCatalogDump__internal_alias")));
#else
#ifndef xmlCatalogDump
extern __typeof (xmlCatalogDump) xmlCatalogDump__internal_alias __attribute((visibility("hidden")));
#define xmlCatalogDump xmlCatalogDump__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_CATALOG_ENABLED)
#ifdef bottom_catalog
#undef xmlCatalogFreeLocal
extern __typeof (xmlCatalogFreeLocal) xmlCatalogFreeLocal __attribute((alias("xmlCatalogFreeLocal__internal_alias")));
#else
#ifndef xmlCatalogFreeLocal
extern __typeof (xmlCatalogFreeLocal) xmlCatalogFreeLocal__internal_alias __attribute((visibility("hidden")));
#define xmlCatalogFreeLocal xmlCatalogFreeLocal__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_CATALOG_ENABLED)
#ifdef bottom_catalog
#undef xmlCatalogGetDefaults
extern __typeof (xmlCatalogGetDefaults) xmlCatalogGetDefaults __attribute((alias("xmlCatalogGetDefaults__internal_alias")));
#else
#ifndef xmlCatalogGetDefaults
extern __typeof (xmlCatalogGetDefaults) xmlCatalogGetDefaults__internal_alias __attribute((visibility("hidden")));
#define xmlCatalogGetDefaults xmlCatalogGetDefaults__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_CATALOG_ENABLED)
#ifdef bottom_catalog
#undef xmlCatalogGetPublic
extern __typeof (xmlCatalogGetPublic) xmlCatalogGetPublic __attribute((alias("xmlCatalogGetPublic__internal_alias")));
#else
#ifndef xmlCatalogGetPublic
extern __typeof (xmlCatalogGetPublic) xmlCatalogGetPublic__internal_alias __attribute((visibility("hidden")));
#define xmlCatalogGetPublic xmlCatalogGetPublic__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_CATALOG_ENABLED)
#ifdef bottom_catalog
#undef xmlCatalogGetSystem
extern __typeof (xmlCatalogGetSystem) xmlCatalogGetSystem __attribute((alias("xmlCatalogGetSystem__internal_alias")));
#else
#ifndef xmlCatalogGetSystem
extern __typeof (xmlCatalogGetSystem) xmlCatalogGetSystem__internal_alias __attribute((visibility("hidden")));
#define xmlCatalogGetSystem xmlCatalogGetSystem__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_CATALOG_ENABLED)
#ifdef bottom_catalog
#undef xmlCatalogIsEmpty
extern __typeof (xmlCatalogIsEmpty) xmlCatalogIsEmpty __attribute((alias("xmlCatalogIsEmpty__internal_alias")));
#else
#ifndef xmlCatalogIsEmpty
extern __typeof (xmlCatalogIsEmpty) xmlCatalogIsEmpty__internal_alias __attribute((visibility("hidden")));
#define xmlCatalogIsEmpty xmlCatalogIsEmpty__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_CATALOG_ENABLED)
#ifdef bottom_catalog
#undef xmlCatalogLocalResolve
extern __typeof (xmlCatalogLocalResolve) xmlCatalogLocalResolve __attribute((alias("xmlCatalogLocalResolve__internal_alias")));
#else
#ifndef xmlCatalogLocalResolve
extern __typeof (xmlCatalogLocalResolve) xmlCatalogLocalResolve__internal_alias __attribute((visibility("hidden")));
#define xmlCatalogLocalResolve xmlCatalogLocalResolve__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_CATALOG_ENABLED)
#ifdef bottom_catalog
#undef xmlCatalogLocalResolveURI
extern __typeof (xmlCatalogLocalResolveURI) xmlCatalogLocalResolveURI __attribute((alias("xmlCatalogLocalResolveURI__internal_alias")));
#else
#ifndef xmlCatalogLocalResolveURI
extern __typeof (xmlCatalogLocalResolveURI) xmlCatalogLocalResolveURI__internal_alias __attribute((visibility("hidden")));
#define xmlCatalogLocalResolveURI xmlCatalogLocalResolveURI__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_CATALOG_ENABLED)
#ifdef bottom_catalog
#undef xmlCatalogRemove
extern __typeof (xmlCatalogRemove) xmlCatalogRemove __attribute((alias("xmlCatalogRemove__internal_alias")));
#else
#ifndef xmlCatalogRemove
extern __typeof (xmlCatalogRemove) xmlCatalogRemove__internal_alias __attribute((visibility("hidden")));
#define xmlCatalogRemove xmlCatalogRemove__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_CATALOG_ENABLED)
#ifdef bottom_catalog
#undef xmlCatalogResolve
extern __typeof (xmlCatalogResolve) xmlCatalogResolve __attribute((alias("xmlCatalogResolve__internal_alias")));
#else
#ifndef xmlCatalogResolve
extern __typeof (xmlCatalogResolve) xmlCatalogResolve__internal_alias __attribute((visibility("hidden")));
#define xmlCatalogResolve xmlCatalogResolve__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_CATALOG_ENABLED)
#ifdef bottom_catalog
#undef xmlCatalogResolvePublic
extern __typeof (xmlCatalogResolvePublic) xmlCatalogResolvePublic __attribute((alias("xmlCatalogResolvePublic__internal_alias")));
#else
#ifndef xmlCatalogResolvePublic
extern __typeof (xmlCatalogResolvePublic) xmlCatalogResolvePublic__internal_alias __attribute((visibility("hidden")));
#define xmlCatalogResolvePublic xmlCatalogResolvePublic__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_CATALOG_ENABLED)
#ifdef bottom_catalog
#undef xmlCatalogResolveSystem
extern __typeof (xmlCatalogResolveSystem) xmlCatalogResolveSystem __attribute((alias("xmlCatalogResolveSystem__internal_alias")));
#else
#ifndef xmlCatalogResolveSystem
extern __typeof (xmlCatalogResolveSystem) xmlCatalogResolveSystem__internal_alias __attribute((visibility("hidden")));
#define xmlCatalogResolveSystem xmlCatalogResolveSystem__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_CATALOG_ENABLED)
#ifdef bottom_catalog
#undef xmlCatalogResolveURI
extern __typeof (xmlCatalogResolveURI) xmlCatalogResolveURI __attribute((alias("xmlCatalogResolveURI__internal_alias")));
#else
#ifndef xmlCatalogResolveURI
extern __typeof (xmlCatalogResolveURI) xmlCatalogResolveURI__internal_alias __attribute((visibility("hidden")));
#define xmlCatalogResolveURI xmlCatalogResolveURI__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_CATALOG_ENABLED)
#ifdef bottom_catalog
#undef xmlCatalogSetDebug
extern __typeof (xmlCatalogSetDebug) xmlCatalogSetDebug __attribute((alias("xmlCatalogSetDebug__internal_alias")));
#else
#ifndef xmlCatalogSetDebug
extern __typeof (xmlCatalogSetDebug) xmlCatalogSetDebug__internal_alias __attribute((visibility("hidden")));
#define xmlCatalogSetDebug xmlCatalogSetDebug__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_CATALOG_ENABLED)
#ifdef bottom_catalog
#undef xmlCatalogSetDefaultPrefer
extern __typeof (xmlCatalogSetDefaultPrefer) xmlCatalogSetDefaultPrefer __attribute((alias("xmlCatalogSetDefaultPrefer__internal_alias")));
#else
#ifndef xmlCatalogSetDefaultPrefer
extern __typeof (xmlCatalogSetDefaultPrefer) xmlCatalogSetDefaultPrefer__internal_alias __attribute((visibility("hidden")));
#define xmlCatalogSetDefaultPrefer xmlCatalogSetDefaultPrefer__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_CATALOG_ENABLED)
#ifdef bottom_catalog
#undef xmlCatalogSetDefaults
extern __typeof (xmlCatalogSetDefaults) xmlCatalogSetDefaults __attribute((alias("xmlCatalogSetDefaults__internal_alias")));
#else
#ifndef xmlCatalogSetDefaults
extern __typeof (xmlCatalogSetDefaults) xmlCatalogSetDefaults__internal_alias __attribute((visibility("hidden")));
#define xmlCatalogSetDefaults xmlCatalogSetDefaults__internal_alias
#endif
#endif
#endif

#ifdef bottom_encoding
#undef xmlCharEncCloseFunc
extern __typeof (xmlCharEncCloseFunc) xmlCharEncCloseFunc __attribute((alias("xmlCharEncCloseFunc__internal_alias")));
#else
#ifndef xmlCharEncCloseFunc
extern __typeof (xmlCharEncCloseFunc) xmlCharEncCloseFunc__internal_alias __attribute((visibility("hidden")));
#define xmlCharEncCloseFunc xmlCharEncCloseFunc__internal_alias
#endif
#endif

#ifdef bottom_encoding
#undef xmlCharEncFirstLine
extern __typeof (xmlCharEncFirstLine) xmlCharEncFirstLine __attribute((alias("xmlCharEncFirstLine__internal_alias")));
#else
#ifndef xmlCharEncFirstLine
extern __typeof (xmlCharEncFirstLine) xmlCharEncFirstLine__internal_alias __attribute((visibility("hidden")));
#define xmlCharEncFirstLine xmlCharEncFirstLine__internal_alias
#endif
#endif

#ifdef bottom_encoding
#undef xmlCharEncInFunc
extern __typeof (xmlCharEncInFunc) xmlCharEncInFunc __attribute((alias("xmlCharEncInFunc__internal_alias")));
#else
#ifndef xmlCharEncInFunc
extern __typeof (xmlCharEncInFunc) xmlCharEncInFunc__internal_alias __attribute((visibility("hidden")));
#define xmlCharEncInFunc xmlCharEncInFunc__internal_alias
#endif
#endif

#ifdef bottom_encoding
#undef xmlCharEncOutFunc
extern __typeof (xmlCharEncOutFunc) xmlCharEncOutFunc __attribute((alias("xmlCharEncOutFunc__internal_alias")));
#else
#ifndef xmlCharEncOutFunc
extern __typeof (xmlCharEncOutFunc) xmlCharEncOutFunc__internal_alias __attribute((visibility("hidden")));
#define xmlCharEncOutFunc xmlCharEncOutFunc__internal_alias
#endif
#endif

#ifdef bottom_chvalid
#undef xmlCharInRange
extern __typeof (xmlCharInRange) xmlCharInRange __attribute((alias("xmlCharInRange__internal_alias")));
#else
#ifndef xmlCharInRange
extern __typeof (xmlCharInRange) xmlCharInRange__internal_alias __attribute((visibility("hidden")));
#define xmlCharInRange xmlCharInRange__internal_alias
#endif
#endif

#ifdef bottom_xmlstring
#undef xmlCharStrdup
extern __typeof (xmlCharStrdup) xmlCharStrdup __attribute((alias("xmlCharStrdup__internal_alias")));
#else
#ifndef xmlCharStrdup
extern __typeof (xmlCharStrdup) xmlCharStrdup__internal_alias __attribute((visibility("hidden")));
#define xmlCharStrdup xmlCharStrdup__internal_alias
#endif
#endif

#ifdef bottom_xmlstring
#undef xmlCharStrndup
extern __typeof (xmlCharStrndup) xmlCharStrndup __attribute((alias("xmlCharStrndup__internal_alias")));
#else
#ifndef xmlCharStrndup
extern __typeof (xmlCharStrndup) xmlCharStrndup__internal_alias __attribute((visibility("hidden")));
#define xmlCharStrndup xmlCharStrndup__internal_alias
#endif
#endif

#ifdef bottom_xmlIO
#undef xmlCheckFilename
extern __typeof (xmlCheckFilename) xmlCheckFilename __attribute((alias("xmlCheckFilename__internal_alias")));
#else
#ifndef xmlCheckFilename
extern __typeof (xmlCheckFilename) xmlCheckFilename__internal_alias __attribute((visibility("hidden")));
#define xmlCheckFilename xmlCheckFilename__internal_alias
#endif
#endif

#ifdef bottom_xmlIO
#undef xmlCheckHTTPInput
extern __typeof (xmlCheckHTTPInput) xmlCheckHTTPInput __attribute((alias("xmlCheckHTTPInput__internal_alias")));
#else
#ifndef xmlCheckHTTPInput
extern __typeof (xmlCheckHTTPInput) xmlCheckHTTPInput__internal_alias __attribute((visibility("hidden")));
#define xmlCheckHTTPInput xmlCheckHTTPInput__internal_alias
#endif
#endif

#ifdef bottom_parser
#undef xmlCheckLanguageID
extern __typeof (xmlCheckLanguageID) xmlCheckLanguageID __attribute((alias("xmlCheckLanguageID__internal_alias")));
#else
#ifndef xmlCheckLanguageID
extern __typeof (xmlCheckLanguageID) xmlCheckLanguageID__internal_alias __attribute((visibility("hidden")));
#define xmlCheckLanguageID xmlCheckLanguageID__internal_alias
#endif
#endif

#ifdef bottom_xmlstring
#undef xmlCheckUTF8
extern __typeof (xmlCheckUTF8) xmlCheckUTF8 __attribute((alias("xmlCheckUTF8__internal_alias")));
#else
#ifndef xmlCheckUTF8
extern __typeof (xmlCheckUTF8) xmlCheckUTF8__internal_alias __attribute((visibility("hidden")));
#define xmlCheckUTF8 xmlCheckUTF8__internal_alias
#endif
#endif

#ifdef bottom_parserInternals
#undef xmlCheckVersion
extern __typeof (xmlCheckVersion) xmlCheckVersion __attribute((alias("xmlCheckVersion__internal_alias")));
#else
#ifndef xmlCheckVersion
extern __typeof (xmlCheckVersion) xmlCheckVersion__internal_alias __attribute((visibility("hidden")));
#define xmlCheckVersion xmlCheckVersion__internal_alias
#endif
#endif

#ifdef bottom_encoding
#undef xmlCleanupCharEncodingHandlers
extern __typeof (xmlCleanupCharEncodingHandlers) xmlCleanupCharEncodingHandlers __attribute((alias("xmlCleanupCharEncodingHandlers__internal_alias")));
#else
#ifndef xmlCleanupCharEncodingHandlers
extern __typeof (xmlCleanupCharEncodingHandlers) xmlCleanupCharEncodingHandlers__internal_alias __attribute((visibility("hidden")));
#define xmlCleanupCharEncodingHandlers xmlCleanupCharEncodingHandlers__internal_alias
#endif
#endif

#ifdef bottom_encoding
#undef xmlCleanupEncodingAliases
extern __typeof (xmlCleanupEncodingAliases) xmlCleanupEncodingAliases __attribute((alias("xmlCleanupEncodingAliases__internal_alias")));
#else
#ifndef xmlCleanupEncodingAliases
extern __typeof (xmlCleanupEncodingAliases) xmlCleanupEncodingAliases__internal_alias __attribute((visibility("hidden")));
#define xmlCleanupEncodingAliases xmlCleanupEncodingAliases__internal_alias
#endif
#endif

#ifdef bottom_globals
#undef xmlCleanupGlobals
extern __typeof (xmlCleanupGlobals) xmlCleanupGlobals __attribute((alias("xmlCleanupGlobals__internal_alias")));
#else
#ifndef xmlCleanupGlobals
extern __typeof (xmlCleanupGlobals) xmlCleanupGlobals__internal_alias __attribute((visibility("hidden")));
#define xmlCleanupGlobals xmlCleanupGlobals__internal_alias
#endif
#endif

#ifdef bottom_xmlIO
#undef xmlCleanupInputCallbacks
extern __typeof (xmlCleanupInputCallbacks) xmlCleanupInputCallbacks __attribute((alias("xmlCleanupInputCallbacks__internal_alias")));
#else
#ifndef xmlCleanupInputCallbacks
extern __typeof (xmlCleanupInputCallbacks) xmlCleanupInputCallbacks__internal_alias __attribute((visibility("hidden")));
#define xmlCleanupInputCallbacks xmlCleanupInputCallbacks__internal_alias
#endif
#endif

#ifdef bottom_xmlmemory
#undef xmlCleanupMemory
extern __typeof (xmlCleanupMemory) xmlCleanupMemory __attribute((alias("xmlCleanupMemory__internal_alias")));
#else
#ifndef xmlCleanupMemory
extern __typeof (xmlCleanupMemory) xmlCleanupMemory__internal_alias __attribute((visibility("hidden")));
#define xmlCleanupMemory xmlCleanupMemory__internal_alias
#endif
#endif

#if defined(LIBXML_OUTPUT_ENABLED)
#ifdef bottom_xmlIO
#undef xmlCleanupOutputCallbacks
extern __typeof (xmlCleanupOutputCallbacks) xmlCleanupOutputCallbacks __attribute((alias("xmlCleanupOutputCallbacks__internal_alias")));
#else
#ifndef xmlCleanupOutputCallbacks
extern __typeof (xmlCleanupOutputCallbacks) xmlCleanupOutputCallbacks__internal_alias __attribute((visibility("hidden")));
#define xmlCleanupOutputCallbacks xmlCleanupOutputCallbacks__internal_alias
#endif
#endif
#endif

#ifdef bottom_parser
#undef xmlCleanupParser
extern __typeof (xmlCleanupParser) xmlCleanupParser __attribute((alias("xmlCleanupParser__internal_alias")));
#else
#ifndef xmlCleanupParser
extern __typeof (xmlCleanupParser) xmlCleanupParser__internal_alias __attribute((visibility("hidden")));
#define xmlCleanupParser xmlCleanupParser__internal_alias
#endif
#endif

#if defined(LIBXML_LEGACY_ENABLED)
#ifdef bottom_legacy
#undef xmlCleanupPredefinedEntities
extern __typeof (xmlCleanupPredefinedEntities) xmlCleanupPredefinedEntities __attribute((alias("xmlCleanupPredefinedEntities__internal_alias")));
#else
#ifndef xmlCleanupPredefinedEntities
extern __typeof (xmlCleanupPredefinedEntities) xmlCleanupPredefinedEntities__internal_alias __attribute((visibility("hidden")));
#define xmlCleanupPredefinedEntities xmlCleanupPredefinedEntities__internal_alias
#endif
#endif
#endif

#ifdef bottom_threads
#undef xmlCleanupThreads
extern __typeof (xmlCleanupThreads) xmlCleanupThreads __attribute((alias("xmlCleanupThreads__internal_alias")));
#else
#ifndef xmlCleanupThreads
extern __typeof (xmlCleanupThreads) xmlCleanupThreads__internal_alias __attribute((visibility("hidden")));
#define xmlCleanupThreads xmlCleanupThreads__internal_alias
#endif
#endif

#ifdef bottom_parserInternals
#undef xmlClearNodeInfoSeq
extern __typeof (xmlClearNodeInfoSeq) xmlClearNodeInfoSeq __attribute((alias("xmlClearNodeInfoSeq__internal_alias")));
#else
#ifndef xmlClearNodeInfoSeq
extern __typeof (xmlClearNodeInfoSeq) xmlClearNodeInfoSeq__internal_alias __attribute((visibility("hidden")));
#define xmlClearNodeInfoSeq xmlClearNodeInfoSeq__internal_alias
#endif
#endif

#ifdef bottom_parserInternals
#undef xmlClearParserCtxt
extern __typeof (xmlClearParserCtxt) xmlClearParserCtxt __attribute((alias("xmlClearParserCtxt__internal_alias")));
#else
#ifndef xmlClearParserCtxt
extern __typeof (xmlClearParserCtxt) xmlClearParserCtxt__internal_alias __attribute((visibility("hidden")));
#define xmlClearParserCtxt xmlClearParserCtxt__internal_alias
#endif
#endif

#if defined(LIBXML_CATALOG_ENABLED)
#ifdef bottom_catalog
#undef xmlConvertSGMLCatalog
extern __typeof (xmlConvertSGMLCatalog) xmlConvertSGMLCatalog __attribute((alias("xmlConvertSGMLCatalog__internal_alias")));
#else
#ifndef xmlConvertSGMLCatalog
extern __typeof (xmlConvertSGMLCatalog) xmlConvertSGMLCatalog__internal_alias __attribute((visibility("hidden")));
#define xmlConvertSGMLCatalog xmlConvertSGMLCatalog__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_TREE_ENABLED)
#ifdef bottom_valid
#undef xmlCopyAttributeTable
extern __typeof (xmlCopyAttributeTable) xmlCopyAttributeTable __attribute((alias("xmlCopyAttributeTable__internal_alias")));
#else
#ifndef xmlCopyAttributeTable
extern __typeof (xmlCopyAttributeTable) xmlCopyAttributeTable__internal_alias __attribute((visibility("hidden")));
#define xmlCopyAttributeTable xmlCopyAttributeTable__internal_alias
#endif
#endif
#endif

#ifdef bottom_parserInternals
#undef xmlCopyChar
extern __typeof (xmlCopyChar) xmlCopyChar __attribute((alias("xmlCopyChar__internal_alias")));
#else
#ifndef xmlCopyChar
extern __typeof (xmlCopyChar) xmlCopyChar__internal_alias __attribute((visibility("hidden")));
#define xmlCopyChar xmlCopyChar__internal_alias
#endif
#endif

#ifdef bottom_parserInternals
#undef xmlCopyCharMultiByte
extern __typeof (xmlCopyCharMultiByte) xmlCopyCharMultiByte __attribute((alias("xmlCopyCharMultiByte__internal_alias")));
#else
#ifndef xmlCopyCharMultiByte
extern __typeof (xmlCopyCharMultiByte) xmlCopyCharMultiByte__internal_alias __attribute((visibility("hidden")));
#define xmlCopyCharMultiByte xmlCopyCharMultiByte__internal_alias
#endif
#endif

#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)
#ifdef bottom_tree
#undef xmlCopyDoc
extern __typeof (xmlCopyDoc) xmlCopyDoc __attribute((alias("xmlCopyDoc__internal_alias")));
#else
#ifndef xmlCopyDoc
extern __typeof (xmlCopyDoc) xmlCopyDoc__internal_alias __attribute((visibility("hidden")));
#define xmlCopyDoc xmlCopyDoc__internal_alias
#endif
#endif
#endif

#ifdef bottom_valid
#undef xmlCopyDocElementContent
extern __typeof (xmlCopyDocElementContent) xmlCopyDocElementContent __attribute((alias("xmlCopyDocElementContent__internal_alias")));
#else
#ifndef xmlCopyDocElementContent
extern __typeof (xmlCopyDocElementContent) xmlCopyDocElementContent__internal_alias __attribute((visibility("hidden")));
#define xmlCopyDocElementContent xmlCopyDocElementContent__internal_alias
#endif
#endif

#if defined(LIBXML_TREE_ENABLED)
#ifdef bottom_tree
#undef xmlCopyDtd
extern __typeof (xmlCopyDtd) xmlCopyDtd __attribute((alias("xmlCopyDtd__internal_alias")));
#else
#ifndef xmlCopyDtd
extern __typeof (xmlCopyDtd) xmlCopyDtd__internal_alias __attribute((visibility("hidden")));
#define xmlCopyDtd xmlCopyDtd__internal_alias
#endif
#endif
#endif

#ifdef bottom_valid
#undef xmlCopyElementContent
extern __typeof (xmlCopyElementContent) xmlCopyElementContent __attribute((alias("xmlCopyElementContent__internal_alias")));
#else
#ifndef xmlCopyElementContent
extern __typeof (xmlCopyElementContent) xmlCopyElementContent__internal_alias __attribute((visibility("hidden")));
#define xmlCopyElementContent xmlCopyElementContent__internal_alias
#endif
#endif

#if defined(LIBXML_TREE_ENABLED)
#ifdef bottom_valid
#undef xmlCopyElementTable
extern __typeof (xmlCopyElementTable) xmlCopyElementTable __attribute((alias("xmlCopyElementTable__internal_alias")));
#else
#ifndef xmlCopyElementTable
extern __typeof (xmlCopyElementTable) xmlCopyElementTable__internal_alias __attribute((visibility("hidden")));
#define xmlCopyElementTable xmlCopyElementTable__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_TREE_ENABLED)
#ifdef bottom_entities
#undef xmlCopyEntitiesTable
extern __typeof (xmlCopyEntitiesTable) xmlCopyEntitiesTable __attribute((alias("xmlCopyEntitiesTable__internal_alias")));
#else
#ifndef xmlCopyEntitiesTable
extern __typeof (xmlCopyEntitiesTable) xmlCopyEntitiesTable__internal_alias __attribute((visibility("hidden")));
#define xmlCopyEntitiesTable xmlCopyEntitiesTable__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_TREE_ENABLED)
#ifdef bottom_valid
#undef xmlCopyEnumeration
extern __typeof (xmlCopyEnumeration) xmlCopyEnumeration __attribute((alias("xmlCopyEnumeration__internal_alias")));
#else
#ifndef xmlCopyEnumeration
extern __typeof (xmlCopyEnumeration) xmlCopyEnumeration__internal_alias __attribute((visibility("hidden")));
#define xmlCopyEnumeration xmlCopyEnumeration__internal_alias
#endif
#endif
#endif

#ifdef bottom_error
#undef xmlCopyError
extern __typeof (xmlCopyError) xmlCopyError __attribute((alias("xmlCopyError__internal_alias")));
#else
#ifndef xmlCopyError
extern __typeof (xmlCopyError) xmlCopyError__internal_alias __attribute((visibility("hidden")));
#define xmlCopyError xmlCopyError__internal_alias
#endif
#endif

#ifdef bottom_tree
#undef xmlCopyNamespace
extern __typeof (xmlCopyNamespace) xmlCopyNamespace __attribute((alias("xmlCopyNamespace__internal_alias")));
#else
#ifndef xmlCopyNamespace
extern __typeof (xmlCopyNamespace) xmlCopyNamespace__internal_alias __attribute((visibility("hidden")));
#define xmlCopyNamespace xmlCopyNamespace__internal_alias
#endif
#endif

#ifdef bottom_tree
#undef xmlCopyNamespaceList
extern __typeof (xmlCopyNamespaceList) xmlCopyNamespaceList __attribute((alias("xmlCopyNamespaceList__internal_alias")));
#else
#ifndef xmlCopyNamespaceList
extern __typeof (xmlCopyNamespaceList) xmlCopyNamespaceList__internal_alias __attribute((visibility("hidden")));
#define xmlCopyNamespaceList xmlCopyNamespaceList__internal_alias
#endif
#endif

#ifdef bottom_tree
#undef xmlCopyNode
extern __typeof (xmlCopyNode) xmlCopyNode __attribute((alias("xmlCopyNode__internal_alias")));
#else
#ifndef xmlCopyNode
extern __typeof (xmlCopyNode) xmlCopyNode__internal_alias __attribute((visibility("hidden")));
#define xmlCopyNode xmlCopyNode__internal_alias
#endif
#endif

#ifdef bottom_tree
#undef xmlCopyNodeList
extern __typeof (xmlCopyNodeList) xmlCopyNodeList __attribute((alias("xmlCopyNodeList__internal_alias")));
#else
#ifndef xmlCopyNodeList
extern __typeof (xmlCopyNodeList) xmlCopyNodeList__internal_alias __attribute((visibility("hidden")));
#define xmlCopyNodeList xmlCopyNodeList__internal_alias
#endif
#endif

#if defined(LIBXML_TREE_ENABLED)
#ifdef bottom_valid
#undef xmlCopyNotationTable
extern __typeof (xmlCopyNotationTable) xmlCopyNotationTable __attribute((alias("xmlCopyNotationTable__internal_alias")));
#else
#ifndef xmlCopyNotationTable
extern __typeof (xmlCopyNotationTable) xmlCopyNotationTable__internal_alias __attribute((visibility("hidden")));
#define xmlCopyNotationTable xmlCopyNotationTable__internal_alias
#endif
#endif
#endif

#ifdef bottom_tree
#undef xmlCopyProp
extern __typeof (xmlCopyProp) xmlCopyProp __attribute((alias("xmlCopyProp__internal_alias")));
#else
#ifndef xmlCopyProp
extern __typeof (xmlCopyProp) xmlCopyProp__internal_alias __attribute((visibility("hidden")));
#define xmlCopyProp xmlCopyProp__internal_alias
#endif
#endif

#ifdef bottom_tree
#undef xmlCopyPropList
extern __typeof (xmlCopyPropList) xmlCopyPropList __attribute((alias("xmlCopyPropList__internal_alias")));
#else
#ifndef xmlCopyPropList
extern __typeof (xmlCopyPropList) xmlCopyPropList__internal_alias __attribute((visibility("hidden")));
#define xmlCopyPropList xmlCopyPropList__internal_alias
#endif
#endif

#ifdef bottom_parser
#undef xmlCreateDocParserCtxt
extern __typeof (xmlCreateDocParserCtxt) xmlCreateDocParserCtxt __attribute((alias("xmlCreateDocParserCtxt__internal_alias")));
#else
#ifndef xmlCreateDocParserCtxt
extern __typeof (xmlCreateDocParserCtxt) xmlCreateDocParserCtxt__internal_alias __attribute((visibility("hidden")));
#define xmlCreateDocParserCtxt xmlCreateDocParserCtxt__internal_alias
#endif
#endif

#ifdef bottom_entities
#undef xmlCreateEntitiesTable
extern __typeof (xmlCreateEntitiesTable) xmlCreateEntitiesTable __attribute((alias("xmlCreateEntitiesTable__internal_alias")));
#else
#ifndef xmlCreateEntitiesTable
extern __typeof (xmlCreateEntitiesTable) xmlCreateEntitiesTable__internal_alias __attribute((visibility("hidden")));
#define xmlCreateEntitiesTable xmlCreateEntitiesTable__internal_alias
#endif
#endif

#ifdef bottom_parser
#undef xmlCreateEntityParserCtxt
extern __typeof (xmlCreateEntityParserCtxt) xmlCreateEntityParserCtxt __attribute((alias("xmlCreateEntityParserCtxt__internal_alias")));
#else
#ifndef xmlCreateEntityParserCtxt
extern __typeof (xmlCreateEntityParserCtxt) xmlCreateEntityParserCtxt__internal_alias __attribute((visibility("hidden")));
#define xmlCreateEntityParserCtxt xmlCreateEntityParserCtxt__internal_alias
#endif
#endif

#ifdef bottom_valid
#undef xmlCreateEnumeration
extern __typeof (xmlCreateEnumeration) xmlCreateEnumeration __attribute((alias("xmlCreateEnumeration__internal_alias")));
#else
#ifndef xmlCreateEnumeration
extern __typeof (xmlCreateEnumeration) xmlCreateEnumeration__internal_alias __attribute((visibility("hidden")));
#define xmlCreateEnumeration xmlCreateEnumeration__internal_alias
#endif
#endif

#ifdef bottom_parser
#undef xmlCreateFileParserCtxt
extern __typeof (xmlCreateFileParserCtxt) xmlCreateFileParserCtxt __attribute((alias("xmlCreateFileParserCtxt__internal_alias")));
#else
#ifndef xmlCreateFileParserCtxt
extern __typeof (xmlCreateFileParserCtxt) xmlCreateFileParserCtxt__internal_alias __attribute((visibility("hidden")));
#define xmlCreateFileParserCtxt xmlCreateFileParserCtxt__internal_alias
#endif
#endif

#ifdef bottom_parser
#undef xmlCreateIOParserCtxt
extern __typeof (xmlCreateIOParserCtxt) xmlCreateIOParserCtxt __attribute((alias("xmlCreateIOParserCtxt__internal_alias")));
#else
#ifndef xmlCreateIOParserCtxt
extern __typeof (xmlCreateIOParserCtxt) xmlCreateIOParserCtxt__internal_alias __attribute((visibility("hidden")));
#define xmlCreateIOParserCtxt xmlCreateIOParserCtxt__internal_alias
#endif
#endif

#ifdef bottom_tree
#undef xmlCreateIntSubset
extern __typeof (xmlCreateIntSubset) xmlCreateIntSubset __attribute((alias("xmlCreateIntSubset__internal_alias")));
#else
#ifndef xmlCreateIntSubset
extern __typeof (xmlCreateIntSubset) xmlCreateIntSubset__internal_alias __attribute((visibility("hidden")));
#define xmlCreateIntSubset xmlCreateIntSubset__internal_alias
#endif
#endif

#ifdef bottom_parser
#undef xmlCreateMemoryParserCtxt
extern __typeof (xmlCreateMemoryParserCtxt) xmlCreateMemoryParserCtxt __attribute((alias("xmlCreateMemoryParserCtxt__internal_alias")));
#else
#ifndef xmlCreateMemoryParserCtxt
extern __typeof (xmlCreateMemoryParserCtxt) xmlCreateMemoryParserCtxt__internal_alias __attribute((visibility("hidden")));
#define xmlCreateMemoryParserCtxt xmlCreateMemoryParserCtxt__internal_alias
#endif
#endif

#if defined(LIBXML_PUSH_ENABLED)
#ifdef bottom_parser
#undef xmlCreatePushParserCtxt
extern __typeof (xmlCreatePushParserCtxt) xmlCreatePushParserCtxt __attribute((alias("xmlCreatePushParserCtxt__internal_alias")));
#else
#ifndef xmlCreatePushParserCtxt
extern __typeof (xmlCreatePushParserCtxt) xmlCreatePushParserCtxt__internal_alias __attribute((visibility("hidden")));
#define xmlCreatePushParserCtxt xmlCreatePushParserCtxt__internal_alias
#endif
#endif
#endif

#ifdef bottom_uri
#undef xmlCreateURI
extern __typeof (xmlCreateURI) xmlCreateURI __attribute((alias("xmlCreateURI__internal_alias")));
#else
#ifndef xmlCreateURI
extern __typeof (xmlCreateURI) xmlCreateURI__internal_alias __attribute((visibility("hidden")));
#define xmlCreateURI xmlCreateURI__internal_alias
#endif
#endif

#ifdef bottom_parser
#undef xmlCreateURLParserCtxt
extern __typeof (xmlCreateURLParserCtxt) xmlCreateURLParserCtxt __attribute((alias("xmlCreateURLParserCtxt__internal_alias")));
#else
#ifndef xmlCreateURLParserCtxt
extern __typeof (xmlCreateURLParserCtxt) xmlCreateURLParserCtxt__internal_alias __attribute((visibility("hidden")));
#define xmlCreateURLParserCtxt xmlCreateURLParserCtxt__internal_alias
#endif
#endif

#ifdef bottom_error
#undef xmlCtxtGetLastError
extern __typeof (xmlCtxtGetLastError) xmlCtxtGetLastError __attribute((alias("xmlCtxtGetLastError__internal_alias")));
#else
#ifndef xmlCtxtGetLastError
extern __typeof (xmlCtxtGetLastError) xmlCtxtGetLastError__internal_alias __attribute((visibility("hidden")));
#define xmlCtxtGetLastError xmlCtxtGetLastError__internal_alias
#endif
#endif

#ifdef bottom_parser
#undef xmlCtxtReadDoc
extern __typeof (xmlCtxtReadDoc) xmlCtxtReadDoc __attribute((alias("xmlCtxtReadDoc__internal_alias")));
#else
#ifndef xmlCtxtReadDoc
extern __typeof (xmlCtxtReadDoc) xmlCtxtReadDoc__internal_alias __attribute((visibility("hidden")));
#define xmlCtxtReadDoc xmlCtxtReadDoc__internal_alias
#endif
#endif

#ifdef bottom_parser
#undef xmlCtxtReadFd
extern __typeof (xmlCtxtReadFd) xmlCtxtReadFd __attribute((alias("xmlCtxtReadFd__internal_alias")));
#else
#ifndef xmlCtxtReadFd
extern __typeof (xmlCtxtReadFd) xmlCtxtReadFd__internal_alias __attribute((visibility("hidden")));
#define xmlCtxtReadFd xmlCtxtReadFd__internal_alias
#endif
#endif

#ifdef bottom_parser
#undef xmlCtxtReadFile
extern __typeof (xmlCtxtReadFile) xmlCtxtReadFile __attribute((alias("xmlCtxtReadFile__internal_alias")));
#else
#ifndef xmlCtxtReadFile
extern __typeof (xmlCtxtReadFile) xmlCtxtReadFile__internal_alias __attribute((visibility("hidden")));
#define xmlCtxtReadFile xmlCtxtReadFile__internal_alias
#endif
#endif

#ifdef bottom_parser
#undef xmlCtxtReadIO
extern __typeof (xmlCtxtReadIO) xmlCtxtReadIO __attribute((alias("xmlCtxtReadIO__internal_alias")));
#else
#ifndef xmlCtxtReadIO
extern __typeof (xmlCtxtReadIO) xmlCtxtReadIO__internal_alias __attribute((visibility("hidden")));
#define xmlCtxtReadIO xmlCtxtReadIO__internal_alias
#endif
#endif

#ifdef bottom_parser
#undef xmlCtxtReadMemory
extern __typeof (xmlCtxtReadMemory) xmlCtxtReadMemory __attribute((alias("xmlCtxtReadMemory__internal_alias")));
#else
#ifndef xmlCtxtReadMemory
extern __typeof (xmlCtxtReadMemory) xmlCtxtReadMemory__internal_alias __attribute((visibility("hidden")));
#define xmlCtxtReadMemory xmlCtxtReadMemory__internal_alias
#endif
#endif

#ifdef bottom_parser
#undef xmlCtxtReset
extern __typeof (xmlCtxtReset) xmlCtxtReset __attribute((alias("xmlCtxtReset__internal_alias")));
#else
#ifndef xmlCtxtReset
extern __typeof (xmlCtxtReset) xmlCtxtReset__internal_alias __attribute((visibility("hidden")));
#define xmlCtxtReset xmlCtxtReset__internal_alias
#endif
#endif

#ifdef bottom_error
#undef xmlCtxtResetLastError
extern __typeof (xmlCtxtResetLastError) xmlCtxtResetLastError __attribute((alias("xmlCtxtResetLastError__internal_alias")));
#else
#ifndef xmlCtxtResetLastError
extern __typeof (xmlCtxtResetLastError) xmlCtxtResetLastError__internal_alias __attribute((visibility("hidden")));
#define xmlCtxtResetLastError xmlCtxtResetLastError__internal_alias
#endif
#endif

#ifdef bottom_parser
#undef xmlCtxtResetPush
extern __typeof (xmlCtxtResetPush) xmlCtxtResetPush __attribute((alias("xmlCtxtResetPush__internal_alias")));
#else
#ifndef xmlCtxtResetPush
extern __typeof (xmlCtxtResetPush) xmlCtxtResetPush__internal_alias __attribute((visibility("hidden")));
#define xmlCtxtResetPush xmlCtxtResetPush__internal_alias
#endif
#endif

#ifdef bottom_parser
#undef xmlCtxtUseOptions
extern __typeof (xmlCtxtUseOptions) xmlCtxtUseOptions __attribute((alias("xmlCtxtUseOptions__internal_alias")));
#else
#ifndef xmlCtxtUseOptions
extern __typeof (xmlCtxtUseOptions) xmlCtxtUseOptions__internal_alias __attribute((visibility("hidden")));
#define xmlCtxtUseOptions xmlCtxtUseOptions__internal_alias
#endif
#endif

#ifdef bottom_parserInternals
#undef xmlCurrentChar
extern __typeof (xmlCurrentChar) xmlCurrentChar __attribute((alias("xmlCurrentChar__internal_alias")));
#else
#ifndef xmlCurrentChar
extern __typeof (xmlCurrentChar) xmlCurrentChar__internal_alias __attribute((visibility("hidden")));
#define xmlCurrentChar xmlCurrentChar__internal_alias
#endif
#endif

#ifdef bottom_tree
#undef xmlDOMWrapAdoptNode
extern __typeof (xmlDOMWrapAdoptNode) xmlDOMWrapAdoptNode __attribute((alias("xmlDOMWrapAdoptNode__internal_alias")));
#else
#ifndef xmlDOMWrapAdoptNode
extern __typeof (xmlDOMWrapAdoptNode) xmlDOMWrapAdoptNode__internal_alias __attribute((visibility("hidden")));
#define xmlDOMWrapAdoptNode xmlDOMWrapAdoptNode__internal_alias
#endif
#endif

#ifdef bottom_tree
#undef xmlDOMWrapFreeCtxt
extern __typeof (xmlDOMWrapFreeCtxt) xmlDOMWrapFreeCtxt __attribute((alias("xmlDOMWrapFreeCtxt__internal_alias")));
#else
#ifndef xmlDOMWrapFreeCtxt
extern __typeof (xmlDOMWrapFreeCtxt) xmlDOMWrapFreeCtxt__internal_alias __attribute((visibility("hidden")));
#define xmlDOMWrapFreeCtxt xmlDOMWrapFreeCtxt__internal_alias
#endif
#endif

#ifdef bottom_tree
#undef xmlDOMWrapNewCtxt
extern __typeof (xmlDOMWrapNewCtxt) xmlDOMWrapNewCtxt __attribute((alias("xmlDOMWrapNewCtxt__internal_alias")));
#else
#ifndef xmlDOMWrapNewCtxt
extern __typeof (xmlDOMWrapNewCtxt) xmlDOMWrapNewCtxt__internal_alias __attribute((visibility("hidden")));
#define xmlDOMWrapNewCtxt xmlDOMWrapNewCtxt__internal_alias
#endif
#endif

#ifdef bottom_tree
#undef xmlDOMWrapReconcileNamespaces
extern __typeof (xmlDOMWrapReconcileNamespaces) xmlDOMWrapReconcileNamespaces __attribute((alias("xmlDOMWrapReconcileNamespaces__internal_alias")));
#else
#ifndef xmlDOMWrapReconcileNamespaces
extern __typeof (xmlDOMWrapReconcileNamespaces) xmlDOMWrapReconcileNamespaces__internal_alias __attribute((visibility("hidden")));
#define xmlDOMWrapReconcileNamespaces xmlDOMWrapReconcileNamespaces__internal_alias
#endif
#endif

#ifdef bottom_tree
#undef xmlDOMWrapRemoveNode
extern __typeof (xmlDOMWrapRemoveNode) xmlDOMWrapRemoveNode __attribute((alias("xmlDOMWrapRemoveNode__internal_alias")));
#else
#ifndef xmlDOMWrapRemoveNode
extern __typeof (xmlDOMWrapRemoveNode) xmlDOMWrapRemoveNode__internal_alias __attribute((visibility("hidden")));
#define xmlDOMWrapRemoveNode xmlDOMWrapRemoveNode__internal_alias
#endif
#endif

#if defined(LIBXML_DEBUG_ENABLED)
#ifdef bottom_debugXML
#undef xmlDebugCheckDocument
extern __typeof (xmlDebugCheckDocument) xmlDebugCheckDocument __attribute((alias("xmlDebugCheckDocument__internal_alias")));
#else
#ifndef xmlDebugCheckDocument
extern __typeof (xmlDebugCheckDocument) xmlDebugCheckDocument__internal_alias __attribute((visibility("hidden")));
#define xmlDebugCheckDocument xmlDebugCheckDocument__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_DEBUG_ENABLED)
#ifdef bottom_debugXML
#undef xmlDebugDumpAttr
extern __typeof (xmlDebugDumpAttr) xmlDebugDumpAttr __attribute((alias("xmlDebugDumpAttr__internal_alias")));
#else
#ifndef xmlDebugDumpAttr
extern __typeof (xmlDebugDumpAttr) xmlDebugDumpAttr__internal_alias __attribute((visibility("hidden")));
#define xmlDebugDumpAttr xmlDebugDumpAttr__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_DEBUG_ENABLED)
#ifdef bottom_debugXML
#undef xmlDebugDumpAttrList
extern __typeof (xmlDebugDumpAttrList) xmlDebugDumpAttrList __attribute((alias("xmlDebugDumpAttrList__internal_alias")));
#else
#ifndef xmlDebugDumpAttrList
extern __typeof (xmlDebugDumpAttrList) xmlDebugDumpAttrList__internal_alias __attribute((visibility("hidden")));
#define xmlDebugDumpAttrList xmlDebugDumpAttrList__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_DEBUG_ENABLED)
#ifdef bottom_debugXML
#undef xmlDebugDumpDTD
extern __typeof (xmlDebugDumpDTD) xmlDebugDumpDTD __attribute((alias("xmlDebugDumpDTD__internal_alias")));
#else
#ifndef xmlDebugDumpDTD
extern __typeof (xmlDebugDumpDTD) xmlDebugDumpDTD__internal_alias __attribute((visibility("hidden")));
#define xmlDebugDumpDTD xmlDebugDumpDTD__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_DEBUG_ENABLED)
#ifdef bottom_debugXML
#undef xmlDebugDumpDocument
extern __typeof (xmlDebugDumpDocument) xmlDebugDumpDocument __attribute((alias("xmlDebugDumpDocument__internal_alias")));
#else
#ifndef xmlDebugDumpDocument
extern __typeof (xmlDebugDumpDocument) xmlDebugDumpDocument__internal_alias __attribute((visibility("hidden")));
#define xmlDebugDumpDocument xmlDebugDumpDocument__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_DEBUG_ENABLED)
#ifdef bottom_debugXML
#undef xmlDebugDumpDocumentHead
extern __typeof (xmlDebugDumpDocumentHead) xmlDebugDumpDocumentHead __attribute((alias("xmlDebugDumpDocumentHead__internal_alias")));
#else
#ifndef xmlDebugDumpDocumentHead
extern __typeof (xmlDebugDumpDocumentHead) xmlDebugDumpDocumentHead__internal_alias __attribute((visibility("hidden")));
#define xmlDebugDumpDocumentHead xmlDebugDumpDocumentHead__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_DEBUG_ENABLED)
#ifdef bottom_debugXML
#undef xmlDebugDumpEntities
extern __typeof (xmlDebugDumpEntities) xmlDebugDumpEntities __attribute((alias("xmlDebugDumpEntities__internal_alias")));
#else
#ifndef xmlDebugDumpEntities
extern __typeof (xmlDebugDumpEntities) xmlDebugDumpEntities__internal_alias __attribute((visibility("hidden")));
#define xmlDebugDumpEntities xmlDebugDumpEntities__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_DEBUG_ENABLED)
#ifdef bottom_debugXML
#undef xmlDebugDumpNode
extern __typeof (xmlDebugDumpNode) xmlDebugDumpNode __attribute((alias("xmlDebugDumpNode__internal_alias")));
#else
#ifndef xmlDebugDumpNode
extern __typeof (xmlDebugDumpNode) xmlDebugDumpNode__internal_alias __attribute((visibility("hidden")));
#define xmlDebugDumpNode xmlDebugDumpNode__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_DEBUG_ENABLED)
#ifdef bottom_debugXML
#undef xmlDebugDumpNodeList
extern __typeof (xmlDebugDumpNodeList) xmlDebugDumpNodeList __attribute((alias("xmlDebugDumpNodeList__internal_alias")));
#else
#ifndef xmlDebugDumpNodeList
extern __typeof (xmlDebugDumpNodeList) xmlDebugDumpNodeList__internal_alias __attribute((visibility("hidden")));
#define xmlDebugDumpNodeList xmlDebugDumpNodeList__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_DEBUG_ENABLED)
#ifdef bottom_debugXML
#undef xmlDebugDumpOneNode
extern __typeof (xmlDebugDumpOneNode) xmlDebugDumpOneNode __attribute((alias("xmlDebugDumpOneNode__internal_alias")));
#else
#ifndef xmlDebugDumpOneNode
extern __typeof (xmlDebugDumpOneNode) xmlDebugDumpOneNode__internal_alias __attribute((visibility("hidden")));
#define xmlDebugDumpOneNode xmlDebugDumpOneNode__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_DEBUG_ENABLED)
#ifdef bottom_debugXML
#undef xmlDebugDumpString
extern __typeof (xmlDebugDumpString) xmlDebugDumpString __attribute((alias("xmlDebugDumpString__internal_alias")));
#else
#ifndef xmlDebugDumpString
extern __typeof (xmlDebugDumpString) xmlDebugDumpString__internal_alias __attribute((visibility("hidden")));
#define xmlDebugDumpString xmlDebugDumpString__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_LEGACY_ENABLED)
#ifdef bottom_legacy
#undef xmlDecodeEntities
extern __typeof (xmlDecodeEntities) xmlDecodeEntities __attribute((alias("xmlDecodeEntities__internal_alias")));
#else
#ifndef xmlDecodeEntities
extern __typeof (xmlDecodeEntities) xmlDecodeEntities__internal_alias __attribute((visibility("hidden")));
#define xmlDecodeEntities xmlDecodeEntities__internal_alias
#endif
#endif
#endif

#ifdef bottom_SAX2
#undef xmlDefaultSAXHandlerInit
extern __typeof (xmlDefaultSAXHandlerInit) xmlDefaultSAXHandlerInit __attribute((alias("xmlDefaultSAXHandlerInit__internal_alias")));
#else
#ifndef xmlDefaultSAXHandlerInit
extern __typeof (xmlDefaultSAXHandlerInit) xmlDefaultSAXHandlerInit__internal_alias __attribute((visibility("hidden")));
#define xmlDefaultSAXHandlerInit xmlDefaultSAXHandlerInit__internal_alias
#endif
#endif

#ifdef bottom_encoding
#undef xmlDelEncodingAlias
extern __typeof (xmlDelEncodingAlias) xmlDelEncodingAlias __attribute((alias("xmlDelEncodingAlias__internal_alias")));
#else
#ifndef xmlDelEncodingAlias
extern __typeof (xmlDelEncodingAlias) xmlDelEncodingAlias__internal_alias __attribute((visibility("hidden")));
#define xmlDelEncodingAlias xmlDelEncodingAlias__internal_alias
#endif
#endif

#ifdef bottom_globals
#undef xmlDeregisterNodeDefault
extern __typeof (xmlDeregisterNodeDefault) xmlDeregisterNodeDefault __attribute((alias("xmlDeregisterNodeDefault__internal_alias")));
#else
#ifndef xmlDeregisterNodeDefault
extern __typeof (xmlDeregisterNodeDefault) xmlDeregisterNodeDefault__internal_alias __attribute((visibility("hidden")));
#define xmlDeregisterNodeDefault xmlDeregisterNodeDefault__internal_alias
#endif
#endif

#ifdef bottom_encoding
#undef xmlDetectCharEncoding
extern __typeof (xmlDetectCharEncoding) xmlDetectCharEncoding __attribute((alias("xmlDetectCharEncoding__internal_alias")));
#else
#ifndef xmlDetectCharEncoding
extern __typeof (xmlDetectCharEncoding) xmlDetectCharEncoding__internal_alias __attribute((visibility("hidden")));
#define xmlDetectCharEncoding xmlDetectCharEncoding__internal_alias
#endif
#endif

#ifdef bottom_dict
#undef xmlDictCleanup
extern __typeof (xmlDictCleanup) xmlDictCleanup __attribute((alias("xmlDictCleanup__internal_alias")));
#else
#ifndef xmlDictCleanup
extern __typeof (xmlDictCleanup) xmlDictCleanup__internal_alias __attribute((visibility("hidden")));
#define xmlDictCleanup xmlDictCleanup__internal_alias
#endif
#endif

#ifdef bottom_dict
#undef xmlDictCreate
extern __typeof (xmlDictCreate) xmlDictCreate __attribute((alias("xmlDictCreate__internal_alias")));
#else
#ifndef xmlDictCreate
extern __typeof (xmlDictCreate) xmlDictCreate__internal_alias __attribute((visibility("hidden")));
#define xmlDictCreate xmlDictCreate__internal_alias
#endif
#endif

#ifdef bottom_dict
#undef xmlDictCreateSub
extern __typeof (xmlDictCreateSub) xmlDictCreateSub __attribute((alias("xmlDictCreateSub__internal_alias")));
#else
#ifndef xmlDictCreateSub
extern __typeof (xmlDictCreateSub) xmlDictCreateSub__internal_alias __attribute((visibility("hidden")));
#define xmlDictCreateSub xmlDictCreateSub__internal_alias
#endif
#endif

#ifdef bottom_dict
#undef xmlDictExists
extern __typeof (xmlDictExists) xmlDictExists __attribute((alias("xmlDictExists__internal_alias")));
#else
#ifndef xmlDictExists
extern __typeof (xmlDictExists) xmlDictExists__internal_alias __attribute((visibility("hidden")));
#define xmlDictExists xmlDictExists__internal_alias
#endif
#endif

#ifdef bottom_dict
#undef xmlDictFree
extern __typeof (xmlDictFree) xmlDictFree __attribute((alias("xmlDictFree__internal_alias")));
#else
#ifndef xmlDictFree
extern __typeof (xmlDictFree) xmlDictFree__internal_alias __attribute((visibility("hidden")));
#define xmlDictFree xmlDictFree__internal_alias
#endif
#endif

#ifdef bottom_dict
#undef xmlDictLookup
extern __typeof (xmlDictLookup) xmlDictLookup __attribute((alias("xmlDictLookup__internal_alias")));
#else
#ifndef xmlDictLookup
extern __typeof (xmlDictLookup) xmlDictLookup__internal_alias __attribute((visibility("hidden")));
#define xmlDictLookup xmlDictLookup__internal_alias
#endif
#endif

#ifdef bottom_dict
#undef xmlDictOwns
extern __typeof (xmlDictOwns) xmlDictOwns __attribute((alias("xmlDictOwns__internal_alias")));
#else
#ifndef xmlDictOwns
extern __typeof (xmlDictOwns) xmlDictOwns__internal_alias __attribute((visibility("hidden")));
#define xmlDictOwns xmlDictOwns__internal_alias
#endif
#endif

#ifdef bottom_dict
#undef xmlDictQLookup
extern __typeof (xmlDictQLookup) xmlDictQLookup __attribute((alias("xmlDictQLookup__internal_alias")));
#else
#ifndef xmlDictQLookup
extern __typeof (xmlDictQLookup) xmlDictQLookup__internal_alias __attribute((visibility("hidden")));
#define xmlDictQLookup xmlDictQLookup__internal_alias
#endif
#endif

#ifdef bottom_dict
#undef xmlDictReference
extern __typeof (xmlDictReference) xmlDictReference __attribute((alias("xmlDictReference__internal_alias")));
#else
#ifndef xmlDictReference
extern __typeof (xmlDictReference) xmlDictReference__internal_alias __attribute((visibility("hidden")));
#define xmlDictReference xmlDictReference__internal_alias
#endif
#endif

#ifdef bottom_dict
#undef xmlDictSize
extern __typeof (xmlDictSize) xmlDictSize __attribute((alias("xmlDictSize__internal_alias")));
#else
#ifndef xmlDictSize
extern __typeof (xmlDictSize) xmlDictSize__internal_alias __attribute((visibility("hidden")));
#define xmlDictSize xmlDictSize__internal_alias
#endif
#endif

#ifdef bottom_tree
#undef xmlDocCopyNode
extern __typeof (xmlDocCopyNode) xmlDocCopyNode __attribute((alias("xmlDocCopyNode__internal_alias")));
#else
#ifndef xmlDocCopyNode
extern __typeof (xmlDocCopyNode) xmlDocCopyNode__internal_alias __attribute((visibility("hidden")));
#define xmlDocCopyNode xmlDocCopyNode__internal_alias
#endif
#endif

#ifdef bottom_tree
#undef xmlDocCopyNodeList
extern __typeof (xmlDocCopyNodeList) xmlDocCopyNodeList __attribute((alias("xmlDocCopyNodeList__internal_alias")));
#else
#ifndef xmlDocCopyNodeList
extern __typeof (xmlDocCopyNodeList) xmlDocCopyNodeList__internal_alias __attribute((visibility("hidden")));
#define xmlDocCopyNodeList xmlDocCopyNodeList__internal_alias
#endif
#endif

#if defined(LIBXML_OUTPUT_ENABLED)
#ifdef bottom_xmlsave
#undef xmlDocDump
extern __typeof (xmlDocDump) xmlDocDump __attribute((alias("xmlDocDump__internal_alias")));
#else
#ifndef xmlDocDump
extern __typeof (xmlDocDump) xmlDocDump__internal_alias __attribute((visibility("hidden")));
#define xmlDocDump xmlDocDump__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_OUTPUT_ENABLED)
#ifdef bottom_xmlsave
#undef xmlDocDumpFormatMemory
extern __typeof (xmlDocDumpFormatMemory) xmlDocDumpFormatMemory __attribute((alias("xmlDocDumpFormatMemory__internal_alias")));
#else
#ifndef xmlDocDumpFormatMemory
extern __typeof (xmlDocDumpFormatMemory) xmlDocDumpFormatMemory__internal_alias __attribute((visibility("hidden")));
#define xmlDocDumpFormatMemory xmlDocDumpFormatMemory__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_OUTPUT_ENABLED)
#ifdef bottom_xmlsave
#undef xmlDocDumpFormatMemoryEnc
extern __typeof (xmlDocDumpFormatMemoryEnc) xmlDocDumpFormatMemoryEnc __attribute((alias("xmlDocDumpFormatMemoryEnc__internal_alias")));
#else
#ifndef xmlDocDumpFormatMemoryEnc
extern __typeof (xmlDocDumpFormatMemoryEnc) xmlDocDumpFormatMemoryEnc__internal_alias __attribute((visibility("hidden")));
#define xmlDocDumpFormatMemoryEnc xmlDocDumpFormatMemoryEnc__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_OUTPUT_ENABLED)
#ifdef bottom_xmlsave
#undef xmlDocDumpMemory
extern __typeof (xmlDocDumpMemory) xmlDocDumpMemory __attribute((alias("xmlDocDumpMemory__internal_alias")));
#else
#ifndef xmlDocDumpMemory
extern __typeof (xmlDocDumpMemory) xmlDocDumpMemory__internal_alias __attribute((visibility("hidden")));
#define xmlDocDumpMemory xmlDocDumpMemory__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_OUTPUT_ENABLED)
#ifdef bottom_xmlsave
#undef xmlDocDumpMemoryEnc
extern __typeof (xmlDocDumpMemoryEnc) xmlDocDumpMemoryEnc __attribute((alias("xmlDocDumpMemoryEnc__internal_alias")));
#else
#ifndef xmlDocDumpMemoryEnc
extern __typeof (xmlDocDumpMemoryEnc) xmlDocDumpMemoryEnc__internal_alias __attribute((visibility("hidden")));
#define xmlDocDumpMemoryEnc xmlDocDumpMemoryEnc__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_OUTPUT_ENABLED)
#ifdef bottom_xmlsave
#undef xmlDocFormatDump
extern __typeof (xmlDocFormatDump) xmlDocFormatDump __attribute((alias("xmlDocFormatDump__internal_alias")));
#else
#ifndef xmlDocFormatDump
extern __typeof (xmlDocFormatDump) xmlDocFormatDump__internal_alias __attribute((visibility("hidden")));
#define xmlDocFormatDump xmlDocFormatDump__internal_alias
#endif
#endif
#endif

#ifdef bottom_tree
#undef xmlDocGetRootElement
extern __typeof (xmlDocGetRootElement) xmlDocGetRootElement __attribute((alias("xmlDocGetRootElement__internal_alias")));
#else
#ifndef xmlDocGetRootElement
extern __typeof (xmlDocGetRootElement) xmlDocGetRootElement__internal_alias __attribute((visibility("hidden")));
#define xmlDocGetRootElement xmlDocGetRootElement__internal_alias
#endif
#endif

#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_WRITER_ENABLED)
#ifdef bottom_tree
#undef xmlDocSetRootElement
extern __typeof (xmlDocSetRootElement) xmlDocSetRootElement __attribute((alias("xmlDocSetRootElement__internal_alias")));
#else
#ifndef xmlDocSetRootElement
extern __typeof (xmlDocSetRootElement) xmlDocSetRootElement__internal_alias __attribute((visibility("hidden")));
#define xmlDocSetRootElement xmlDocSetRootElement__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_OUTPUT_ENABLED)
#ifdef bottom_valid
#undef xmlDumpAttributeDecl
extern __typeof (xmlDumpAttributeDecl) xmlDumpAttributeDecl __attribute((alias("xmlDumpAttributeDecl__internal_alias")));
#else
#ifndef xmlDumpAttributeDecl
extern __typeof (xmlDumpAttributeDecl) xmlDumpAttributeDecl__internal_alias __attribute((visibility("hidden")));
#define xmlDumpAttributeDecl xmlDumpAttributeDecl__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_OUTPUT_ENABLED)
#ifdef bottom_valid
#undef xmlDumpAttributeTable
extern __typeof (xmlDumpAttributeTable) xmlDumpAttributeTable __attribute((alias("xmlDumpAttributeTable__internal_alias")));
#else
#ifndef xmlDumpAttributeTable
extern __typeof (xmlDumpAttributeTable) xmlDumpAttributeTable__internal_alias __attribute((visibility("hidden")));
#define xmlDumpAttributeTable xmlDumpAttributeTable__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_OUTPUT_ENABLED)
#ifdef bottom_valid
#undef xmlDumpElementDecl
extern __typeof (xmlDumpElementDecl) xmlDumpElementDecl __attribute((alias("xmlDumpElementDecl__internal_alias")));
#else
#ifndef xmlDumpElementDecl
extern __typeof (xmlDumpElementDecl) xmlDumpElementDecl__internal_alias __attribute((visibility("hidden")));
#define xmlDumpElementDecl xmlDumpElementDecl__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_OUTPUT_ENABLED)
#ifdef bottom_valid
#undef xmlDumpElementTable
extern __typeof (xmlDumpElementTable) xmlDumpElementTable __attribute((alias("xmlDumpElementTable__internal_alias")));
#else
#ifndef xmlDumpElementTable
extern __typeof (xmlDumpElementTable) xmlDumpElementTable__internal_alias __attribute((visibility("hidden")));
#define xmlDumpElementTable xmlDumpElementTable__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_OUTPUT_ENABLED)
#ifdef bottom_entities
#undef xmlDumpEntitiesTable
extern __typeof (xmlDumpEntitiesTable) xmlDumpEntitiesTable __attribute((alias("xmlDumpEntitiesTable__internal_alias")));
#else
#ifndef xmlDumpEntitiesTable
extern __typeof (xmlDumpEntitiesTable) xmlDumpEntitiesTable__internal_alias __attribute((visibility("hidden")));
#define xmlDumpEntitiesTable xmlDumpEntitiesTable__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_OUTPUT_ENABLED)
#ifdef bottom_entities
#undef xmlDumpEntityDecl
extern __typeof (xmlDumpEntityDecl) xmlDumpEntityDecl __attribute((alias("xmlDumpEntityDecl__internal_alias")));
#else
#ifndef xmlDumpEntityDecl
extern __typeof (xmlDumpEntityDecl) xmlDumpEntityDecl__internal_alias __attribute((visibility("hidden")));
#define xmlDumpEntityDecl xmlDumpEntityDecl__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_OUTPUT_ENABLED)
#ifdef bottom_valid
#undef xmlDumpNotationDecl
extern __typeof (xmlDumpNotationDecl) xmlDumpNotationDecl __attribute((alias("xmlDumpNotationDecl__internal_alias")));
#else
#ifndef xmlDumpNotationDecl
extern __typeof (xmlDumpNotationDecl) xmlDumpNotationDecl__internal_alias __attribute((visibility("hidden")));
#define xmlDumpNotationDecl xmlDumpNotationDecl__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_OUTPUT_ENABLED)
#ifdef bottom_valid
#undef xmlDumpNotationTable
extern __typeof (xmlDumpNotationTable) xmlDumpNotationTable __attribute((alias("xmlDumpNotationTable__internal_alias")));
#else
#ifndef xmlDumpNotationTable
extern __typeof (xmlDumpNotationTable) xmlDumpNotationTable__internal_alias __attribute((visibility("hidden")));
#define xmlDumpNotationTable xmlDumpNotationTable__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_OUTPUT_ENABLED)
#ifdef bottom_xmlsave
#undef xmlElemDump
extern __typeof (xmlElemDump) xmlElemDump __attribute((alias("xmlElemDump__internal_alias")));
#else
#ifndef xmlElemDump
extern __typeof (xmlElemDump) xmlElemDump__internal_alias __attribute((visibility("hidden")));
#define xmlElemDump xmlElemDump__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_LEGACY_ENABLED)
#ifdef bottom_legacy
#undef xmlEncodeEntities
extern __typeof (xmlEncodeEntities) xmlEncodeEntities __attribute((alias("xmlEncodeEntities__internal_alias")));
#else
#ifndef xmlEncodeEntities
extern __typeof (xmlEncodeEntities) xmlEncodeEntities__internal_alias __attribute((visibility("hidden")));
#define xmlEncodeEntities xmlEncodeEntities__internal_alias
#endif
#endif
#endif

#ifdef bottom_entities
#undef xmlEncodeEntitiesReentrant
extern __typeof (xmlEncodeEntitiesReentrant) xmlEncodeEntitiesReentrant __attribute((alias("xmlEncodeEntitiesReentrant__internal_alias")));
#else
#ifndef xmlEncodeEntitiesReentrant
extern __typeof (xmlEncodeEntitiesReentrant) xmlEncodeEntitiesReentrant__internal_alias __attribute((visibility("hidden")));
#define xmlEncodeEntitiesReentrant xmlEncodeEntitiesReentrant__internal_alias
#endif
#endif

#ifdef bottom_entities
#undef xmlEncodeSpecialChars
extern __typeof (xmlEncodeSpecialChars) xmlEncodeSpecialChars __attribute((alias("xmlEncodeSpecialChars__internal_alias")));
#else
#ifndef xmlEncodeSpecialChars
extern __typeof (xmlEncodeSpecialChars) xmlEncodeSpecialChars__internal_alias __attribute((visibility("hidden")));
#define xmlEncodeSpecialChars xmlEncodeSpecialChars__internal_alias
#endif
#endif

#ifdef bottom_parserInternals
#undef xmlErrMemory
extern __typeof (xmlErrMemory) xmlErrMemory __attribute((alias("xmlErrMemory__internal_alias")));
#else
#ifndef xmlErrMemory
extern __typeof (xmlErrMemory) xmlErrMemory__internal_alias __attribute((visibility("hidden")));
#define xmlErrMemory xmlErrMemory__internal_alias
#endif
#endif

#if defined(LIBXML_REGEXP_ENABLED) && defined(LIBXML_EXPR_ENABLED)
#ifdef bottom_xmlregexp
#undef xmlExpCtxtNbCons
extern __typeof (xmlExpCtxtNbCons) xmlExpCtxtNbCons __attribute((alias("xmlExpCtxtNbCons__internal_alias")));
#else
#ifndef xmlExpCtxtNbCons
extern __typeof (xmlExpCtxtNbCons) xmlExpCtxtNbCons__internal_alias __attribute((visibility("hidden")));
#define xmlExpCtxtNbCons xmlExpCtxtNbCons__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_REGEXP_ENABLED) && defined(LIBXML_EXPR_ENABLED)
#ifdef bottom_xmlregexp
#undef xmlExpCtxtNbNodes
extern __typeof (xmlExpCtxtNbNodes) xmlExpCtxtNbNodes __attribute((alias("xmlExpCtxtNbNodes__internal_alias")));
#else
#ifndef xmlExpCtxtNbNodes
extern __typeof (xmlExpCtxtNbNodes) xmlExpCtxtNbNodes__internal_alias __attribute((visibility("hidden")));
#define xmlExpCtxtNbNodes xmlExpCtxtNbNodes__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_REGEXP_ENABLED) && defined(LIBXML_EXPR_ENABLED)
#ifdef bottom_xmlregexp
#undef xmlExpDump
extern __typeof (xmlExpDump) xmlExpDump __attribute((alias("xmlExpDump__internal_alias")));
#else
#ifndef xmlExpDump
extern __typeof (xmlExpDump) xmlExpDump__internal_alias __attribute((visibility("hidden")));
#define xmlExpDump xmlExpDump__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_REGEXP_ENABLED) && defined(LIBXML_EXPR_ENABLED)
#ifdef bottom_xmlregexp
#undef xmlExpExpDerive
extern __typeof (xmlExpExpDerive) xmlExpExpDerive __attribute((alias("xmlExpExpDerive__internal_alias")));
#else
#ifndef xmlExpExpDerive
extern __typeof (xmlExpExpDerive) xmlExpExpDerive__internal_alias __attribute((visibility("hidden")));
#define xmlExpExpDerive xmlExpExpDerive__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_REGEXP_ENABLED) && defined(LIBXML_EXPR_ENABLED)
#ifdef bottom_xmlregexp
#undef xmlExpFree
extern __typeof (xmlExpFree) xmlExpFree __attribute((alias("xmlExpFree__internal_alias")));
#else
#ifndef xmlExpFree
extern __typeof (xmlExpFree) xmlExpFree__internal_alias __attribute((visibility("hidden")));
#define xmlExpFree xmlExpFree__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_REGEXP_ENABLED) && defined(LIBXML_EXPR_ENABLED)
#ifdef bottom_xmlregexp
#undef xmlExpFreeCtxt
extern __typeof (xmlExpFreeCtxt) xmlExpFreeCtxt __attribute((alias("xmlExpFreeCtxt__internal_alias")));
#else
#ifndef xmlExpFreeCtxt
extern __typeof (xmlExpFreeCtxt) xmlExpFreeCtxt__internal_alias __attribute((visibility("hidden")));
#define xmlExpFreeCtxt xmlExpFreeCtxt__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_REGEXP_ENABLED) && defined(LIBXML_EXPR_ENABLED)
#ifdef bottom_xmlregexp
#undef xmlExpGetLanguage
extern __typeof (xmlExpGetLanguage) xmlExpGetLanguage __attribute((alias("xmlExpGetLanguage__internal_alias")));
#else
#ifndef xmlExpGetLanguage
extern __typeof (xmlExpGetLanguage) xmlExpGetLanguage__internal_alias __attribute((visibility("hidden")));
#define xmlExpGetLanguage xmlExpGetLanguage__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_REGEXP_ENABLED) && defined(LIBXML_EXPR_ENABLED)
#ifdef bottom_xmlregexp
#undef xmlExpGetStart
extern __typeof (xmlExpGetStart) xmlExpGetStart __attribute((alias("xmlExpGetStart__internal_alias")));
#else
#ifndef xmlExpGetStart
extern __typeof (xmlExpGetStart) xmlExpGetStart__internal_alias __attribute((visibility("hidden")));
#define xmlExpGetStart xmlExpGetStart__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_REGEXP_ENABLED) && defined(LIBXML_EXPR_ENABLED)
#ifdef bottom_xmlregexp
#undef xmlExpIsNillable
extern __typeof (xmlExpIsNillable) xmlExpIsNillable __attribute((alias("xmlExpIsNillable__internal_alias")));
#else
#ifndef xmlExpIsNillable
extern __typeof (xmlExpIsNillable) xmlExpIsNillable__internal_alias __attribute((visibility("hidden")));
#define xmlExpIsNillable xmlExpIsNillable__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_REGEXP_ENABLED) && defined(LIBXML_EXPR_ENABLED)
#ifdef bottom_xmlregexp
#undef xmlExpMaxToken
extern __typeof (xmlExpMaxToken) xmlExpMaxToken __attribute((alias("xmlExpMaxToken__internal_alias")));
#else
#ifndef xmlExpMaxToken
extern __typeof (xmlExpMaxToken) xmlExpMaxToken__internal_alias __attribute((visibility("hidden")));
#define xmlExpMaxToken xmlExpMaxToken__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_REGEXP_ENABLED) && defined(LIBXML_EXPR_ENABLED)
#ifdef bottom_xmlregexp
#undef xmlExpNewAtom
extern __typeof (xmlExpNewAtom) xmlExpNewAtom __attribute((alias("xmlExpNewAtom__internal_alias")));
#else
#ifndef xmlExpNewAtom
extern __typeof (xmlExpNewAtom) xmlExpNewAtom__internal_alias __attribute((visibility("hidden")));
#define xmlExpNewAtom xmlExpNewAtom__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_REGEXP_ENABLED) && defined(LIBXML_EXPR_ENABLED)
#ifdef bottom_xmlregexp
#undef xmlExpNewCtxt
extern __typeof (xmlExpNewCtxt) xmlExpNewCtxt __attribute((alias("xmlExpNewCtxt__internal_alias")));
#else
#ifndef xmlExpNewCtxt
extern __typeof (xmlExpNewCtxt) xmlExpNewCtxt__internal_alias __attribute((visibility("hidden")));
#define xmlExpNewCtxt xmlExpNewCtxt__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_REGEXP_ENABLED) && defined(LIBXML_EXPR_ENABLED)
#ifdef bottom_xmlregexp
#undef xmlExpNewOr
extern __typeof (xmlExpNewOr) xmlExpNewOr __attribute((alias("xmlExpNewOr__internal_alias")));
#else
#ifndef xmlExpNewOr
extern __typeof (xmlExpNewOr) xmlExpNewOr__internal_alias __attribute((visibility("hidden")));
#define xmlExpNewOr xmlExpNewOr__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_REGEXP_ENABLED) && defined(LIBXML_EXPR_ENABLED)
#ifdef bottom_xmlregexp
#undef xmlExpNewRange
extern __typeof (xmlExpNewRange) xmlExpNewRange __attribute((alias("xmlExpNewRange__internal_alias")));
#else
#ifndef xmlExpNewRange
extern __typeof (xmlExpNewRange) xmlExpNewRange__internal_alias __attribute((visibility("hidden")));
#define xmlExpNewRange xmlExpNewRange__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_REGEXP_ENABLED) && defined(LIBXML_EXPR_ENABLED)
#ifdef bottom_xmlregexp
#undef xmlExpNewSeq
extern __typeof (xmlExpNewSeq) xmlExpNewSeq __attribute((alias("xmlExpNewSeq__internal_alias")));
#else
#ifndef xmlExpNewSeq
extern __typeof (xmlExpNewSeq) xmlExpNewSeq__internal_alias __attribute((visibility("hidden")));
#define xmlExpNewSeq xmlExpNewSeq__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_REGEXP_ENABLED) && defined(LIBXML_EXPR_ENABLED)
#ifdef bottom_xmlregexp
#undef xmlExpParse
extern __typeof (xmlExpParse) xmlExpParse __attribute((alias("xmlExpParse__internal_alias")));
#else
#ifndef xmlExpParse
extern __typeof (xmlExpParse) xmlExpParse__internal_alias __attribute((visibility("hidden")));
#define xmlExpParse xmlExpParse__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_REGEXP_ENABLED) && defined(LIBXML_EXPR_ENABLED)
#ifdef bottom_xmlregexp
#undef xmlExpRef
extern __typeof (xmlExpRef) xmlExpRef __attribute((alias("xmlExpRef__internal_alias")));
#else
#ifndef xmlExpRef
extern __typeof (xmlExpRef) xmlExpRef__internal_alias __attribute((visibility("hidden")));
#define xmlExpRef xmlExpRef__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_REGEXP_ENABLED) && defined(LIBXML_EXPR_ENABLED)
#ifdef bottom_xmlregexp
#undef xmlExpStringDerive
extern __typeof (xmlExpStringDerive) xmlExpStringDerive __attribute((alias("xmlExpStringDerive__internal_alias")));
#else
#ifndef xmlExpStringDerive
extern __typeof (xmlExpStringDerive) xmlExpStringDerive__internal_alias __attribute((visibility("hidden")));
#define xmlExpStringDerive xmlExpStringDerive__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_REGEXP_ENABLED) && defined(LIBXML_EXPR_ENABLED)
#ifdef bottom_xmlregexp
#undef xmlExpSubsume
extern __typeof (xmlExpSubsume) xmlExpSubsume __attribute((alias("xmlExpSubsume__internal_alias")));
#else
#ifndef xmlExpSubsume
extern __typeof (xmlExpSubsume) xmlExpSubsume__internal_alias __attribute((visibility("hidden")));
#define xmlExpSubsume xmlExpSubsume__internal_alias
#endif
#endif
#endif

#ifdef bottom_xmlIO
#undef xmlFileClose
extern __typeof (xmlFileClose) xmlFileClose __attribute((alias("xmlFileClose__internal_alias")));
#else
#ifndef xmlFileClose
extern __typeof (xmlFileClose) xmlFileClose__internal_alias __attribute((visibility("hidden")));
#define xmlFileClose xmlFileClose__internal_alias
#endif
#endif

#ifdef bottom_xmlIO
#undef xmlFileMatch
extern __typeof (xmlFileMatch) xmlFileMatch __attribute((alias("xmlFileMatch__internal_alias")));
#else
#ifndef xmlFileMatch
extern __typeof (xmlFileMatch) xmlFileMatch__internal_alias __attribute((visibility("hidden")));
#define xmlFileMatch xmlFileMatch__internal_alias
#endif
#endif

#ifdef bottom_xmlIO
#undef xmlFileOpen
extern __typeof (xmlFileOpen) xmlFileOpen __attribute((alias("xmlFileOpen__internal_alias")));
#else
#ifndef xmlFileOpen
extern __typeof (xmlFileOpen) xmlFileOpen__internal_alias __attribute((visibility("hidden")));
#define xmlFileOpen xmlFileOpen__internal_alias
#endif
#endif

#ifdef bottom_xmlIO
#undef xmlFileRead
extern __typeof (xmlFileRead) xmlFileRead __attribute((alias("xmlFileRead__internal_alias")));
#else
#ifndef xmlFileRead
extern __typeof (xmlFileRead) xmlFileRead__internal_alias __attribute((visibility("hidden")));
#define xmlFileRead xmlFileRead__internal_alias
#endif
#endif

#ifdef bottom_encoding
#undef xmlFindCharEncodingHandler
extern __typeof (xmlFindCharEncodingHandler) xmlFindCharEncodingHandler __attribute((alias("xmlFindCharEncodingHandler__internal_alias")));
#else
#ifndef xmlFindCharEncodingHandler
extern __typeof (xmlFindCharEncodingHandler) xmlFindCharEncodingHandler__internal_alias __attribute((visibility("hidden")));
#define xmlFindCharEncodingHandler xmlFindCharEncodingHandler__internal_alias
#endif
#endif

#ifdef bottom_valid
#undef xmlFreeAttributeTable
extern __typeof (xmlFreeAttributeTable) xmlFreeAttributeTable __attribute((alias("xmlFreeAttributeTable__internal_alias")));
#else
#ifndef xmlFreeAttributeTable
extern __typeof (xmlFreeAttributeTable) xmlFreeAttributeTable__internal_alias __attribute((visibility("hidden")));
#define xmlFreeAttributeTable xmlFreeAttributeTable__internal_alias
#endif
#endif

#if defined(LIBXML_REGEXP_ENABLED) && defined(LIBXML_AUTOMATA_ENABLED)
#ifdef bottom_xmlregexp
#undef xmlFreeAutomata
extern __typeof (xmlFreeAutomata) xmlFreeAutomata __attribute((alias("xmlFreeAutomata__internal_alias")));
#else
#ifndef xmlFreeAutomata
extern __typeof (xmlFreeAutomata) xmlFreeAutomata__internal_alias __attribute((visibility("hidden")));
#define xmlFreeAutomata xmlFreeAutomata__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_CATALOG_ENABLED)
#ifdef bottom_catalog
#undef xmlFreeCatalog
extern __typeof (xmlFreeCatalog) xmlFreeCatalog __attribute((alias("xmlFreeCatalog__internal_alias")));
#else
#ifndef xmlFreeCatalog
extern __typeof (xmlFreeCatalog) xmlFreeCatalog__internal_alias __attribute((visibility("hidden")));
#define xmlFreeCatalog xmlFreeCatalog__internal_alias
#endif
#endif
#endif

#ifdef bottom_tree
#undef xmlFreeDoc
extern __typeof (xmlFreeDoc) xmlFreeDoc __attribute((alias("xmlFreeDoc__internal_alias")));
#else
#ifndef xmlFreeDoc
extern __typeof (xmlFreeDoc) xmlFreeDoc__internal_alias __attribute((visibility("hidden")));
#define xmlFreeDoc xmlFreeDoc__internal_alias
#endif
#endif

#ifdef bottom_valid
#undef xmlFreeDocElementContent
extern __typeof (xmlFreeDocElementContent) xmlFreeDocElementContent __attribute((alias("xmlFreeDocElementContent__internal_alias")));
#else
#ifndef xmlFreeDocElementContent
extern __typeof (xmlFreeDocElementContent) xmlFreeDocElementContent__internal_alias __attribute((visibility("hidden")));
#define xmlFreeDocElementContent xmlFreeDocElementContent__internal_alias
#endif
#endif

#ifdef bottom_tree
#undef xmlFreeDtd
extern __typeof (xmlFreeDtd) xmlFreeDtd __attribute((alias("xmlFreeDtd__internal_alias")));
#else
#ifndef xmlFreeDtd
extern __typeof (xmlFreeDtd) xmlFreeDtd__internal_alias __attribute((visibility("hidden")));
#define xmlFreeDtd xmlFreeDtd__internal_alias
#endif
#endif

#ifdef bottom_valid
#undef xmlFreeElementContent
extern __typeof (xmlFreeElementContent) xmlFreeElementContent __attribute((alias("xmlFreeElementContent__internal_alias")));
#else
#ifndef xmlFreeElementContent
extern __typeof (xmlFreeElementContent) xmlFreeElementContent__internal_alias __attribute((visibility("hidden")));
#define xmlFreeElementContent xmlFreeElementContent__internal_alias
#endif
#endif

#ifdef bottom_valid
#undef xmlFreeElementTable
extern __typeof (xmlFreeElementTable) xmlFreeElementTable __attribute((alias("xmlFreeElementTable__internal_alias")));
#else
#ifndef xmlFreeElementTable
extern __typeof (xmlFreeElementTable) xmlFreeElementTable__internal_alias __attribute((visibility("hidden")));
#define xmlFreeElementTable xmlFreeElementTable__internal_alias
#endif
#endif

#ifdef bottom_entities
#undef xmlFreeEntitiesTable
extern __typeof (xmlFreeEntitiesTable) xmlFreeEntitiesTable __attribute((alias("xmlFreeEntitiesTable__internal_alias")));
#else
#ifndef xmlFreeEntitiesTable
extern __typeof (xmlFreeEntitiesTable) xmlFreeEntitiesTable__internal_alias __attribute((visibility("hidden")));
#define xmlFreeEntitiesTable xmlFreeEntitiesTable__internal_alias
#endif
#endif

#ifdef bottom_valid
#undef xmlFreeEnumeration
extern __typeof (xmlFreeEnumeration) xmlFreeEnumeration __attribute((alias("xmlFreeEnumeration__internal_alias")));
#else
#ifndef xmlFreeEnumeration
extern __typeof (xmlFreeEnumeration) xmlFreeEnumeration__internal_alias __attribute((visibility("hidden")));
#define xmlFreeEnumeration xmlFreeEnumeration__internal_alias
#endif
#endif

#ifdef bottom_valid
#undef xmlFreeIDTable
extern __typeof (xmlFreeIDTable) xmlFreeIDTable __attribute((alias("xmlFreeIDTable__internal_alias")));
#else
#ifndef xmlFreeIDTable
extern __typeof (xmlFreeIDTable) xmlFreeIDTable__internal_alias __attribute((visibility("hidden")));
#define xmlFreeIDTable xmlFreeIDTable__internal_alias
#endif
#endif

#ifdef bottom_parserInternals
#undef xmlFreeInputStream
extern __typeof (xmlFreeInputStream) xmlFreeInputStream __attribute((alias("xmlFreeInputStream__internal_alias")));
#else
#ifndef xmlFreeInputStream
extern __typeof (xmlFreeInputStream) xmlFreeInputStream__internal_alias __attribute((visibility("hidden")));
#define xmlFreeInputStream xmlFreeInputStream__internal_alias
#endif
#endif

#ifdef bottom_threads
#undef xmlFreeMutex
extern __typeof (xmlFreeMutex) xmlFreeMutex __attribute((alias("xmlFreeMutex__internal_alias")));
#else
#ifndef xmlFreeMutex
extern __typeof (xmlFreeMutex) xmlFreeMutex__internal_alias __attribute((visibility("hidden")));
#define xmlFreeMutex xmlFreeMutex__internal_alias
#endif
#endif

#ifdef bottom_tree
#undef xmlFreeNode
extern __typeof (xmlFreeNode) xmlFreeNode __attribute((alias("xmlFreeNode__internal_alias")));
#else
#ifndef xmlFreeNode
extern __typeof (xmlFreeNode) xmlFreeNode__internal_alias __attribute((visibility("hidden")));
#define xmlFreeNode xmlFreeNode__internal_alias
#endif
#endif

#ifdef bottom_tree
#undef xmlFreeNodeList
extern __typeof (xmlFreeNodeList) xmlFreeNodeList __attribute((alias("xmlFreeNodeList__internal_alias")));
#else
#ifndef xmlFreeNodeList
extern __typeof (xmlFreeNodeList) xmlFreeNodeList__internal_alias __attribute((visibility("hidden")));
#define xmlFreeNodeList xmlFreeNodeList__internal_alias
#endif
#endif

#ifdef bottom_valid
#undef xmlFreeNotationTable
extern __typeof (xmlFreeNotationTable) xmlFreeNotationTable __attribute((alias("xmlFreeNotationTable__internal_alias")));
#else
#ifndef xmlFreeNotationTable
extern __typeof (xmlFreeNotationTable) xmlFreeNotationTable__internal_alias __attribute((visibility("hidden")));
#define xmlFreeNotationTable xmlFreeNotationTable__internal_alias
#endif
#endif

#ifdef bottom_tree
#undef xmlFreeNs
extern __typeof (xmlFreeNs) xmlFreeNs __attribute((alias("xmlFreeNs__internal_alias")));
#else
#ifndef xmlFreeNs
extern __typeof (xmlFreeNs) xmlFreeNs__internal_alias __attribute((visibility("hidden")));
#define xmlFreeNs xmlFreeNs__internal_alias
#endif
#endif

#ifdef bottom_tree
#undef xmlFreeNsList
extern __typeof (xmlFreeNsList) xmlFreeNsList __attribute((alias("xmlFreeNsList__internal_alias")));
#else
#ifndef xmlFreeNsList
extern __typeof (xmlFreeNsList) xmlFreeNsList__internal_alias __attribute((visibility("hidden")));
#define xmlFreeNsList xmlFreeNsList__internal_alias
#endif
#endif

#ifdef bottom_parserInternals
#undef xmlFreeParserCtxt
extern __typeof (xmlFreeParserCtxt) xmlFreeParserCtxt __attribute((alias("xmlFreeParserCtxt__internal_alias")));
#else
#ifndef xmlFreeParserCtxt
extern __typeof (xmlFreeParserCtxt) xmlFreeParserCtxt__internal_alias __attribute((visibility("hidden")));
#define xmlFreeParserCtxt xmlFreeParserCtxt__internal_alias
#endif
#endif

#ifdef bottom_xmlIO
#undef xmlFreeParserInputBuffer
extern __typeof (xmlFreeParserInputBuffer) xmlFreeParserInputBuffer __attribute((alias("xmlFreeParserInputBuffer__internal_alias")));
#else
#ifndef xmlFreeParserInputBuffer
extern __typeof (xmlFreeParserInputBuffer) xmlFreeParserInputBuffer__internal_alias __attribute((visibility("hidden")));
#define xmlFreeParserInputBuffer xmlFreeParserInputBuffer__internal_alias
#endif
#endif

#if defined(LIBXML_PATTERN_ENABLED)
#ifdef bottom_pattern
#undef xmlFreePattern
extern __typeof (xmlFreePattern) xmlFreePattern __attribute((alias("xmlFreePattern__internal_alias")));
#else
#ifndef xmlFreePattern
extern __typeof (xmlFreePattern) xmlFreePattern__internal_alias __attribute((visibility("hidden")));
#define xmlFreePattern xmlFreePattern__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_PATTERN_ENABLED)
#ifdef bottom_pattern
#undef xmlFreePatternList
extern __typeof (xmlFreePatternList) xmlFreePatternList __attribute((alias("xmlFreePatternList__internal_alias")));
#else
#ifndef xmlFreePatternList
extern __typeof (xmlFreePatternList) xmlFreePatternList__internal_alias __attribute((visibility("hidden")));
#define xmlFreePatternList xmlFreePatternList__internal_alias
#endif
#endif
#endif

#ifdef bottom_tree
#undef xmlFreeProp
extern __typeof (xmlFreeProp) xmlFreeProp __attribute((alias("xmlFreeProp__internal_alias")));
#else
#ifndef xmlFreeProp
extern __typeof (xmlFreeProp) xmlFreeProp__internal_alias __attribute((visibility("hidden")));
#define xmlFreeProp xmlFreeProp__internal_alias
#endif
#endif

#ifdef bottom_tree
#undef xmlFreePropList
extern __typeof (xmlFreePropList) xmlFreePropList __attribute((alias("xmlFreePropList__internal_alias")));
#else
#ifndef xmlFreePropList
extern __typeof (xmlFreePropList) xmlFreePropList__internal_alias __attribute((visibility("hidden")));
#define xmlFreePropList xmlFreePropList__internal_alias
#endif
#endif

#ifdef bottom_threads
#undef xmlFreeRMutex
extern __typeof (xmlFreeRMutex) xmlFreeRMutex __attribute((alias("xmlFreeRMutex__internal_alias")));
#else
#ifndef xmlFreeRMutex
extern __typeof (xmlFreeRMutex) xmlFreeRMutex__internal_alias __attribute((visibility("hidden")));
#define xmlFreeRMutex xmlFreeRMutex__internal_alias
#endif
#endif

#ifdef bottom_valid
#undef xmlFreeRefTable
extern __typeof (xmlFreeRefTable) xmlFreeRefTable __attribute((alias("xmlFreeRefTable__internal_alias")));
#else
#ifndef xmlFreeRefTable
extern __typeof (xmlFreeRefTable) xmlFreeRefTable__internal_alias __attribute((visibility("hidden")));
#define xmlFreeRefTable xmlFreeRefTable__internal_alias
#endif
#endif

#if defined(LIBXML_PATTERN_ENABLED)
#ifdef bottom_pattern
#undef xmlFreeStreamCtxt
extern __typeof (xmlFreeStreamCtxt) xmlFreeStreamCtxt __attribute((alias("xmlFreeStreamCtxt__internal_alias")));
#else
#ifndef xmlFreeStreamCtxt
extern __typeof (xmlFreeStreamCtxt) xmlFreeStreamCtxt__internal_alias __attribute((visibility("hidden")));
#define xmlFreeStreamCtxt xmlFreeStreamCtxt__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_READER_ENABLED)
#ifdef bottom_xmlreader
#undef xmlFreeTextReader
extern __typeof (xmlFreeTextReader) xmlFreeTextReader __attribute((alias("xmlFreeTextReader__internal_alias")));
#else
#ifndef xmlFreeTextReader
extern __typeof (xmlFreeTextReader) xmlFreeTextReader__internal_alias __attribute((visibility("hidden")));
#define xmlFreeTextReader xmlFreeTextReader__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_WRITER_ENABLED)
#ifdef bottom_xmlwriter
#undef xmlFreeTextWriter
extern __typeof (xmlFreeTextWriter) xmlFreeTextWriter __attribute((alias("xmlFreeTextWriter__internal_alias")));
#else
#ifndef xmlFreeTextWriter
extern __typeof (xmlFreeTextWriter) xmlFreeTextWriter__internal_alias __attribute((visibility("hidden")));
#define xmlFreeTextWriter xmlFreeTextWriter__internal_alias
#endif
#endif
#endif

#ifdef bottom_uri
#undef xmlFreeURI
extern __typeof (xmlFreeURI) xmlFreeURI __attribute((alias("xmlFreeURI__internal_alias")));
#else
#ifndef xmlFreeURI
extern __typeof (xmlFreeURI) xmlFreeURI__internal_alias __attribute((visibility("hidden")));
#define xmlFreeURI xmlFreeURI__internal_alias
#endif
#endif

#if defined(LIBXML_VALID_ENABLED)
#ifdef bottom_valid
#undef xmlFreeValidCtxt
extern __typeof (xmlFreeValidCtxt) xmlFreeValidCtxt __attribute((alias("xmlFreeValidCtxt__internal_alias")));
#else
#ifndef xmlFreeValidCtxt
extern __typeof (xmlFreeValidCtxt) xmlFreeValidCtxt__internal_alias __attribute((visibility("hidden")));
#define xmlFreeValidCtxt xmlFreeValidCtxt__internal_alias
#endif
#endif
#endif

#ifdef bottom_xmlmemory
#undef xmlGcMemGet
extern __typeof (xmlGcMemGet) xmlGcMemGet __attribute((alias("xmlGcMemGet__internal_alias")));
#else
#ifndef xmlGcMemGet
extern __typeof (xmlGcMemGet) xmlGcMemGet__internal_alias __attribute((visibility("hidden")));
#define xmlGcMemGet xmlGcMemGet__internal_alias
#endif
#endif

#ifdef bottom_xmlmemory
#undef xmlGcMemSetup
extern __typeof (xmlGcMemSetup) xmlGcMemSetup __attribute((alias("xmlGcMemSetup__internal_alias")));
#else
#ifndef xmlGcMemSetup
extern __typeof (xmlGcMemSetup) xmlGcMemSetup__internal_alias __attribute((visibility("hidden")));
#define xmlGcMemSetup xmlGcMemSetup__internal_alias
#endif
#endif

#ifdef bottom_tree
#undef xmlGetBufferAllocationScheme
extern __typeof (xmlGetBufferAllocationScheme) xmlGetBufferAllocationScheme __attribute((alias("xmlGetBufferAllocationScheme__internal_alias")));
#else
#ifndef xmlGetBufferAllocationScheme
extern __typeof (xmlGetBufferAllocationScheme) xmlGetBufferAllocationScheme__internal_alias __attribute((visibility("hidden")));
#define xmlGetBufferAllocationScheme xmlGetBufferAllocationScheme__internal_alias
#endif
#endif

#ifdef bottom_encoding
#undef xmlGetCharEncodingHandler
extern __typeof (xmlGetCharEncodingHandler) xmlGetCharEncodingHandler __attribute((alias("xmlGetCharEncodingHandler__internal_alias")));
#else
#ifndef xmlGetCharEncodingHandler
extern __typeof (xmlGetCharEncodingHandler) xmlGetCharEncodingHandler__internal_alias __attribute((visibility("hidden")));
#define xmlGetCharEncodingHandler xmlGetCharEncodingHandler__internal_alias
#endif
#endif

#ifdef bottom_encoding
#undef xmlGetCharEncodingName
extern __typeof (xmlGetCharEncodingName) xmlGetCharEncodingName __attribute((alias("xmlGetCharEncodingName__internal_alias")));
#else
#ifndef xmlGetCharEncodingName
extern __typeof (xmlGetCharEncodingName) xmlGetCharEncodingName__internal_alias __attribute((visibility("hidden")));
#define xmlGetCharEncodingName xmlGetCharEncodingName__internal_alias
#endif
#endif

#ifdef bottom_tree
#undef xmlGetCompressMode
extern __typeof (xmlGetCompressMode) xmlGetCompressMode __attribute((alias("xmlGetCompressMode__internal_alias")));
#else
#ifndef xmlGetCompressMode
extern __typeof (xmlGetCompressMode) xmlGetCompressMode__internal_alias __attribute((visibility("hidden")));
#define xmlGetCompressMode xmlGetCompressMode__internal_alias
#endif
#endif

#ifdef bottom_tree
#undef xmlGetDocCompressMode
extern __typeof (xmlGetDocCompressMode) xmlGetDocCompressMode __attribute((alias("xmlGetDocCompressMode__internal_alias")));
#else
#ifndef xmlGetDocCompressMode
extern __typeof (xmlGetDocCompressMode) xmlGetDocCompressMode__internal_alias __attribute((visibility("hidden")));
#define xmlGetDocCompressMode xmlGetDocCompressMode__internal_alias
#endif
#endif

#ifdef bottom_entities
#undef xmlGetDocEntity
extern __typeof (xmlGetDocEntity) xmlGetDocEntity __attribute((alias("xmlGetDocEntity__internal_alias")));
#else
#ifndef xmlGetDocEntity
extern __typeof (xmlGetDocEntity) xmlGetDocEntity__internal_alias __attribute((visibility("hidden")));
#define xmlGetDocEntity xmlGetDocEntity__internal_alias
#endif
#endif

#ifdef bottom_valid
#undef xmlGetDtdAttrDesc
extern __typeof (xmlGetDtdAttrDesc) xmlGetDtdAttrDesc __attribute((alias("xmlGetDtdAttrDesc__internal_alias")));
#else
#ifndef xmlGetDtdAttrDesc
extern __typeof (xmlGetDtdAttrDesc) xmlGetDtdAttrDesc__internal_alias __attribute((visibility("hidden")));
#define xmlGetDtdAttrDesc xmlGetDtdAttrDesc__internal_alias
#endif
#endif

#ifdef bottom_valid
#undef xmlGetDtdElementDesc
extern __typeof (xmlGetDtdElementDesc) xmlGetDtdElementDesc __attribute((alias("xmlGetDtdElementDesc__internal_alias")));
#else
#ifndef xmlGetDtdElementDesc
extern __typeof (xmlGetDtdElementDesc) xmlGetDtdElementDesc__internal_alias __attribute((visibility("hidden")));
#define xmlGetDtdElementDesc xmlGetDtdElementDesc__internal_alias
#endif
#endif

#ifdef bottom_entities
#undef xmlGetDtdEntity
extern __typeof (xmlGetDtdEntity) xmlGetDtdEntity __attribute((alias("xmlGetDtdEntity__internal_alias")));
#else
#ifndef xmlGetDtdEntity
extern __typeof (xmlGetDtdEntity) xmlGetDtdEntity__internal_alias __attribute((visibility("hidden")));
#define xmlGetDtdEntity xmlGetDtdEntity__internal_alias
#endif
#endif

#ifdef bottom_valid
#undef xmlGetDtdNotationDesc
extern __typeof (xmlGetDtdNotationDesc) xmlGetDtdNotationDesc __attribute((alias("xmlGetDtdNotationDesc__internal_alias")));
#else
#ifndef xmlGetDtdNotationDesc
extern __typeof (xmlGetDtdNotationDesc) xmlGetDtdNotationDesc__internal_alias __attribute((visibility("hidden")));
#define xmlGetDtdNotationDesc xmlGetDtdNotationDesc__internal_alias
#endif
#endif

#ifdef bottom_valid
#undef xmlGetDtdQAttrDesc
extern __typeof (xmlGetDtdQAttrDesc) xmlGetDtdQAttrDesc __attribute((alias("xmlGetDtdQAttrDesc__internal_alias")));
#else
#ifndef xmlGetDtdQAttrDesc
extern __typeof (xmlGetDtdQAttrDesc) xmlGetDtdQAttrDesc__internal_alias __attribute((visibility("hidden")));
#define xmlGetDtdQAttrDesc xmlGetDtdQAttrDesc__internal_alias
#endif
#endif

#ifdef bottom_valid
#undef xmlGetDtdQElementDesc
extern __typeof (xmlGetDtdQElementDesc) xmlGetDtdQElementDesc __attribute((alias("xmlGetDtdQElementDesc__internal_alias")));
#else
#ifndef xmlGetDtdQElementDesc
extern __typeof (xmlGetDtdQElementDesc) xmlGetDtdQElementDesc__internal_alias __attribute((visibility("hidden")));
#define xmlGetDtdQElementDesc xmlGetDtdQElementDesc__internal_alias
#endif
#endif

#ifdef bottom_encoding
#undef xmlGetEncodingAlias
extern __typeof (xmlGetEncodingAlias) xmlGetEncodingAlias __attribute((alias("xmlGetEncodingAlias__internal_alias")));
#else
#ifndef xmlGetEncodingAlias
extern __typeof (xmlGetEncodingAlias) xmlGetEncodingAlias__internal_alias __attribute((visibility("hidden")));
#define xmlGetEncodingAlias xmlGetEncodingAlias__internal_alias
#endif
#endif

#ifdef bottom_xmlIO
#undef xmlGetExternalEntityLoader
extern __typeof (xmlGetExternalEntityLoader) xmlGetExternalEntityLoader __attribute((alias("xmlGetExternalEntityLoader__internal_alias")));
#else
#ifndef xmlGetExternalEntityLoader
extern __typeof (xmlGetExternalEntityLoader) xmlGetExternalEntityLoader__internal_alias __attribute((visibility("hidden")));
#define xmlGetExternalEntityLoader xmlGetExternalEntityLoader__internal_alias
#endif
#endif

#if defined(LIBXML_LEGACY_ENABLED)
#ifdef bottom_legacy
#undef xmlGetFeature
extern __typeof (xmlGetFeature) xmlGetFeature __attribute((alias("xmlGetFeature__internal_alias")));
#else
#ifndef xmlGetFeature
extern __typeof (xmlGetFeature) xmlGetFeature__internal_alias __attribute((visibility("hidden")));
#define xmlGetFeature xmlGetFeature__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_LEGACY_ENABLED)
#ifdef bottom_legacy
#undef xmlGetFeaturesList
extern __typeof (xmlGetFeaturesList) xmlGetFeaturesList __attribute((alias("xmlGetFeaturesList__internal_alias")));
#else
#ifndef xmlGetFeaturesList
extern __typeof (xmlGetFeaturesList) xmlGetFeaturesList__internal_alias __attribute((visibility("hidden")));
#define xmlGetFeaturesList xmlGetFeaturesList__internal_alias
#endif
#endif
#endif

#ifdef bottom_threads
#undef xmlGetGlobalState
extern __typeof (xmlGetGlobalState) xmlGetGlobalState __attribute((alias("xmlGetGlobalState__internal_alias")));
#else
#ifndef xmlGetGlobalState
extern __typeof (xmlGetGlobalState) xmlGetGlobalState__internal_alias __attribute((visibility("hidden")));
#define xmlGetGlobalState xmlGetGlobalState__internal_alias
#endif
#endif

#ifdef bottom_valid
#undef xmlGetID
extern __typeof (xmlGetID) xmlGetID __attribute((alias("xmlGetID__internal_alias")));
#else
#ifndef xmlGetID
extern __typeof (xmlGetID) xmlGetID__internal_alias __attribute((visibility("hidden")));
#define xmlGetID xmlGetID__internal_alias
#endif
#endif

#ifdef bottom_tree
#undef xmlGetIntSubset
extern __typeof (xmlGetIntSubset) xmlGetIntSubset __attribute((alias("xmlGetIntSubset__internal_alias")));
#else
#ifndef xmlGetIntSubset
extern __typeof (xmlGetIntSubset) xmlGetIntSubset__internal_alias __attribute((visibility("hidden")));
#define xmlGetIntSubset xmlGetIntSubset__internal_alias
#endif
#endif

#ifdef bottom_tree
#undef xmlGetLastChild
extern __typeof (xmlGetLastChild) xmlGetLastChild __attribute((alias("xmlGetLastChild__internal_alias")));
#else
#ifndef xmlGetLastChild
extern __typeof (xmlGetLastChild) xmlGetLastChild__internal_alias __attribute((visibility("hidden")));
#define xmlGetLastChild xmlGetLastChild__internal_alias
#endif
#endif

#ifdef bottom_error
#undef xmlGetLastError
extern __typeof (xmlGetLastError) xmlGetLastError __attribute((alias("xmlGetLastError__internal_alias")));
#else
#ifndef xmlGetLastError
extern __typeof (xmlGetLastError) xmlGetLastError__internal_alias __attribute((visibility("hidden")));
#define xmlGetLastError xmlGetLastError__internal_alias
#endif
#endif

#ifdef bottom_tree
#undef xmlGetLineNo
extern __typeof (xmlGetLineNo) xmlGetLineNo __attribute((alias("xmlGetLineNo__internal_alias")));
#else
#ifndef xmlGetLineNo
extern __typeof (xmlGetLineNo) xmlGetLineNo__internal_alias __attribute((visibility("hidden")));
#define xmlGetLineNo xmlGetLineNo__internal_alias
#endif
#endif

#ifdef bottom_tree
#undef xmlGetNoNsProp
extern __typeof (xmlGetNoNsProp) xmlGetNoNsProp __attribute((alias("xmlGetNoNsProp__internal_alias")));
#else
#ifndef xmlGetNoNsProp
extern __typeof (xmlGetNoNsProp) xmlGetNoNsProp__internal_alias __attribute((visibility("hidden")));
#define xmlGetNoNsProp xmlGetNoNsProp__internal_alias
#endif
#endif

#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_DEBUG_ENABLED)
#ifdef bottom_tree
#undef xmlGetNodePath
extern __typeof (xmlGetNodePath) xmlGetNodePath __attribute((alias("xmlGetNodePath__internal_alias")));
#else
#ifndef xmlGetNodePath
extern __typeof (xmlGetNodePath) xmlGetNodePath__internal_alias __attribute((visibility("hidden")));
#define xmlGetNodePath xmlGetNodePath__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_tree
#undef xmlGetNsList
extern __typeof (xmlGetNsList) xmlGetNsList __attribute((alias("xmlGetNsList__internal_alias")));
#else
#ifndef xmlGetNsList
extern __typeof (xmlGetNsList) xmlGetNsList__internal_alias __attribute((visibility("hidden")));
#define xmlGetNsList xmlGetNsList__internal_alias
#endif
#endif
#endif

#ifdef bottom_tree
#undef xmlGetNsProp
extern __typeof (xmlGetNsProp) xmlGetNsProp __attribute((alias("xmlGetNsProp__internal_alias")));
#else
#ifndef xmlGetNsProp
extern __typeof (xmlGetNsProp) xmlGetNsProp__internal_alias __attribute((visibility("hidden")));
#define xmlGetNsProp xmlGetNsProp__internal_alias
#endif
#endif

#ifdef bottom_entities
#undef xmlGetParameterEntity
extern __typeof (xmlGetParameterEntity) xmlGetParameterEntity __attribute((alias("xmlGetParameterEntity__internal_alias")));
#else
#ifndef xmlGetParameterEntity
extern __typeof (xmlGetParameterEntity) xmlGetParameterEntity__internal_alias __attribute((visibility("hidden")));
#define xmlGetParameterEntity xmlGetParameterEntity__internal_alias
#endif
#endif

#ifdef bottom_entities
#undef xmlGetPredefinedEntity
extern __typeof (xmlGetPredefinedEntity) xmlGetPredefinedEntity __attribute((alias("xmlGetPredefinedEntity__internal_alias")));
#else
#ifndef xmlGetPredefinedEntity
extern __typeof (xmlGetPredefinedEntity) xmlGetPredefinedEntity__internal_alias __attribute((visibility("hidden")));
#define xmlGetPredefinedEntity xmlGetPredefinedEntity__internal_alias
#endif
#endif

#ifdef bottom_tree
#undef xmlGetProp
extern __typeof (xmlGetProp) xmlGetProp __attribute((alias("xmlGetProp__internal_alias")));
#else
#ifndef xmlGetProp
extern __typeof (xmlGetProp) xmlGetProp__internal_alias __attribute((visibility("hidden")));
#define xmlGetProp xmlGetProp__internal_alias
#endif
#endif

#ifdef bottom_valid
#undef xmlGetRefs
extern __typeof (xmlGetRefs) xmlGetRefs __attribute((alias("xmlGetRefs__internal_alias")));
#else
#ifndef xmlGetRefs
extern __typeof (xmlGetRefs) xmlGetRefs__internal_alias __attribute((visibility("hidden")));
#define xmlGetRefs xmlGetRefs__internal_alias
#endif
#endif

#ifdef bottom_threads
#undef xmlGetThreadId
extern __typeof (xmlGetThreadId) xmlGetThreadId __attribute((alias("xmlGetThreadId__internal_alias")));
#else
#ifndef xmlGetThreadId
extern __typeof (xmlGetThreadId) xmlGetThreadId__internal_alias __attribute((visibility("hidden")));
#define xmlGetThreadId xmlGetThreadId__internal_alias
#endif
#endif

#ifdef bottom_xmlstring
#undef xmlGetUTF8Char
extern __typeof (xmlGetUTF8Char) xmlGetUTF8Char __attribute((alias("xmlGetUTF8Char__internal_alias")));
#else
#ifndef xmlGetUTF8Char
extern __typeof (xmlGetUTF8Char) xmlGetUTF8Char__internal_alias __attribute((visibility("hidden")));
#define xmlGetUTF8Char xmlGetUTF8Char__internal_alias
#endif
#endif

#if defined(LIBXML_LEGACY_ENABLED)
#ifdef bottom_legacy
#undef xmlHandleEntity
extern __typeof (xmlHandleEntity) xmlHandleEntity __attribute((alias("xmlHandleEntity__internal_alias")));
#else
#ifndef xmlHandleEntity
extern __typeof (xmlHandleEntity) xmlHandleEntity__internal_alias __attribute((visibility("hidden")));
#define xmlHandleEntity xmlHandleEntity__internal_alias
#endif
#endif
#endif

#ifdef bottom_tree
#undef xmlHasNsProp
extern __typeof (xmlHasNsProp) xmlHasNsProp __attribute((alias("xmlHasNsProp__internal_alias")));
#else
#ifndef xmlHasNsProp
extern __typeof (xmlHasNsProp) xmlHasNsProp__internal_alias __attribute((visibility("hidden")));
#define xmlHasNsProp xmlHasNsProp__internal_alias
#endif
#endif

#ifdef bottom_tree
#undef xmlHasProp
extern __typeof (xmlHasProp) xmlHasProp __attribute((alias("xmlHasProp__internal_alias")));
#else
#ifndef xmlHasProp
extern __typeof (xmlHasProp) xmlHasProp__internal_alias __attribute((visibility("hidden")));
#define xmlHasProp xmlHasProp__internal_alias
#endif
#endif

#ifdef bottom_hash
#undef xmlHashAddEntry
extern __typeof (xmlHashAddEntry) xmlHashAddEntry __attribute((alias("xmlHashAddEntry__internal_alias")));
#else
#ifndef xmlHashAddEntry
extern __typeof (xmlHashAddEntry) xmlHashAddEntry__internal_alias __attribute((visibility("hidden")));
#define xmlHashAddEntry xmlHashAddEntry__internal_alias
#endif
#endif

#ifdef bottom_hash
#undef xmlHashAddEntry2
extern __typeof (xmlHashAddEntry2) xmlHashAddEntry2 __attribute((alias("xmlHashAddEntry2__internal_alias")));
#else
#ifndef xmlHashAddEntry2
extern __typeof (xmlHashAddEntry2) xmlHashAddEntry2__internal_alias __attribute((visibility("hidden")));
#define xmlHashAddEntry2 xmlHashAddEntry2__internal_alias
#endif
#endif

#ifdef bottom_hash
#undef xmlHashAddEntry3
extern __typeof (xmlHashAddEntry3) xmlHashAddEntry3 __attribute((alias("xmlHashAddEntry3__internal_alias")));
#else
#ifndef xmlHashAddEntry3
extern __typeof (xmlHashAddEntry3) xmlHashAddEntry3__internal_alias __attribute((visibility("hidden")));
#define xmlHashAddEntry3 xmlHashAddEntry3__internal_alias
#endif
#endif

#ifdef bottom_hash
#undef xmlHashCopy
extern __typeof (xmlHashCopy) xmlHashCopy __attribute((alias("xmlHashCopy__internal_alias")));
#else
#ifndef xmlHashCopy
extern __typeof (xmlHashCopy) xmlHashCopy__internal_alias __attribute((visibility("hidden")));
#define xmlHashCopy xmlHashCopy__internal_alias
#endif
#endif

#ifdef bottom_hash
#undef xmlHashCreate
extern __typeof (xmlHashCreate) xmlHashCreate __attribute((alias("xmlHashCreate__internal_alias")));
#else
#ifndef xmlHashCreate
extern __typeof (xmlHashCreate) xmlHashCreate__internal_alias __attribute((visibility("hidden")));
#define xmlHashCreate xmlHashCreate__internal_alias
#endif
#endif

#ifdef bottom_hash
#undef xmlHashCreateDict
extern __typeof (xmlHashCreateDict) xmlHashCreateDict __attribute((alias("xmlHashCreateDict__internal_alias")));
#else
#ifndef xmlHashCreateDict
extern __typeof (xmlHashCreateDict) xmlHashCreateDict__internal_alias __attribute((visibility("hidden")));
#define xmlHashCreateDict xmlHashCreateDict__internal_alias
#endif
#endif

#ifdef bottom_hash
#undef xmlHashFree
extern __typeof (xmlHashFree) xmlHashFree __attribute((alias("xmlHashFree__internal_alias")));
#else
#ifndef xmlHashFree
extern __typeof (xmlHashFree) xmlHashFree__internal_alias __attribute((visibility("hidden")));
#define xmlHashFree xmlHashFree__internal_alias
#endif
#endif

#ifdef bottom_hash
#undef xmlHashLookup
extern __typeof (xmlHashLookup) xmlHashLookup __attribute((alias("xmlHashLookup__internal_alias")));
#else
#ifndef xmlHashLookup
extern __typeof (xmlHashLookup) xmlHashLookup__internal_alias __attribute((visibility("hidden")));
#define xmlHashLookup xmlHashLookup__internal_alias
#endif
#endif

#ifdef bottom_hash
#undef xmlHashLookup2
extern __typeof (xmlHashLookup2) xmlHashLookup2 __attribute((alias("xmlHashLookup2__internal_alias")));
#else
#ifndef xmlHashLookup2
extern __typeof (xmlHashLookup2) xmlHashLookup2__internal_alias __attribute((visibility("hidden")));
#define xmlHashLookup2 xmlHashLookup2__internal_alias
#endif
#endif

#ifdef bottom_hash
#undef xmlHashLookup3
extern __typeof (xmlHashLookup3) xmlHashLookup3 __attribute((alias("xmlHashLookup3__internal_alias")));
#else
#ifndef xmlHashLookup3
extern __typeof (xmlHashLookup3) xmlHashLookup3__internal_alias __attribute((visibility("hidden")));
#define xmlHashLookup3 xmlHashLookup3__internal_alias
#endif
#endif

#ifdef bottom_hash
#undef xmlHashQLookup
extern __typeof (xmlHashQLookup) xmlHashQLookup __attribute((alias("xmlHashQLookup__internal_alias")));
#else
#ifndef xmlHashQLookup
extern __typeof (xmlHashQLookup) xmlHashQLookup__internal_alias __attribute((visibility("hidden")));
#define xmlHashQLookup xmlHashQLookup__internal_alias
#endif
#endif

#ifdef bottom_hash
#undef xmlHashQLookup2
extern __typeof (xmlHashQLookup2) xmlHashQLookup2 __attribute((alias("xmlHashQLookup2__internal_alias")));
#else
#ifndef xmlHashQLookup2
extern __typeof (xmlHashQLookup2) xmlHashQLookup2__internal_alias __attribute((visibility("hidden")));
#define xmlHashQLookup2 xmlHashQLookup2__internal_alias
#endif
#endif

#ifdef bottom_hash
#undef xmlHashQLookup3
extern __typeof (xmlHashQLookup3) xmlHashQLookup3 __attribute((alias("xmlHashQLookup3__internal_alias")));
#else
#ifndef xmlHashQLookup3
extern __typeof (xmlHashQLookup3) xmlHashQLookup3__internal_alias __attribute((visibility("hidden")));
#define xmlHashQLookup3 xmlHashQLookup3__internal_alias
#endif
#endif

#ifdef bottom_hash
#undef xmlHashRemoveEntry
extern __typeof (xmlHashRemoveEntry) xmlHashRemoveEntry __attribute((alias("xmlHashRemoveEntry__internal_alias")));
#else
#ifndef xmlHashRemoveEntry
extern __typeof (xmlHashRemoveEntry) xmlHashRemoveEntry__internal_alias __attribute((visibility("hidden")));
#define xmlHashRemoveEntry xmlHashRemoveEntry__internal_alias
#endif
#endif

#ifdef bottom_hash
#undef xmlHashRemoveEntry2
extern __typeof (xmlHashRemoveEntry2) xmlHashRemoveEntry2 __attribute((alias("xmlHashRemoveEntry2__internal_alias")));
#else
#ifndef xmlHashRemoveEntry2
extern __typeof (xmlHashRemoveEntry2) xmlHashRemoveEntry2__internal_alias __attribute((visibility("hidden")));
#define xmlHashRemoveEntry2 xmlHashRemoveEntry2__internal_alias
#endif
#endif

#ifdef bottom_hash
#undef xmlHashRemoveEntry3
extern __typeof (xmlHashRemoveEntry3) xmlHashRemoveEntry3 __attribute((alias("xmlHashRemoveEntry3__internal_alias")));
#else
#ifndef xmlHashRemoveEntry3
extern __typeof (xmlHashRemoveEntry3) xmlHashRemoveEntry3__internal_alias __attribute((visibility("hidden")));
#define xmlHashRemoveEntry3 xmlHashRemoveEntry3__internal_alias
#endif
#endif

#ifdef bottom_hash
#undef xmlHashScan
extern __typeof (xmlHashScan) xmlHashScan __attribute((alias("xmlHashScan__internal_alias")));
#else
#ifndef xmlHashScan
extern __typeof (xmlHashScan) xmlHashScan__internal_alias __attribute((visibility("hidden")));
#define xmlHashScan xmlHashScan__internal_alias
#endif
#endif

#ifdef bottom_hash
#undef xmlHashScan3
extern __typeof (xmlHashScan3) xmlHashScan3 __attribute((alias("xmlHashScan3__internal_alias")));
#else
#ifndef xmlHashScan3
extern __typeof (xmlHashScan3) xmlHashScan3__internal_alias __attribute((visibility("hidden")));
#define xmlHashScan3 xmlHashScan3__internal_alias
#endif
#endif

#ifdef bottom_hash
#undef xmlHashScanFull
extern __typeof (xmlHashScanFull) xmlHashScanFull __attribute((alias("xmlHashScanFull__internal_alias")));
#else
#ifndef xmlHashScanFull
extern __typeof (xmlHashScanFull) xmlHashScanFull__internal_alias __attribute((visibility("hidden")));
#define xmlHashScanFull xmlHashScanFull__internal_alias
#endif
#endif

#ifdef bottom_hash
#undef xmlHashScanFull3
extern __typeof (xmlHashScanFull3) xmlHashScanFull3 __attribute((alias("xmlHashScanFull3__internal_alias")));
#else
#ifndef xmlHashScanFull3
extern __typeof (xmlHashScanFull3) xmlHashScanFull3__internal_alias __attribute((visibility("hidden")));
#define xmlHashScanFull3 xmlHashScanFull3__internal_alias
#endif
#endif

#ifdef bottom_hash
#undef xmlHashSize
extern __typeof (xmlHashSize) xmlHashSize __attribute((alias("xmlHashSize__internal_alias")));
#else
#ifndef xmlHashSize
extern __typeof (xmlHashSize) xmlHashSize__internal_alias __attribute((visibility("hidden")));
#define xmlHashSize xmlHashSize__internal_alias
#endif
#endif

#ifdef bottom_hash
#undef xmlHashUpdateEntry
extern __typeof (xmlHashUpdateEntry) xmlHashUpdateEntry __attribute((alias("xmlHashUpdateEntry__internal_alias")));
#else
#ifndef xmlHashUpdateEntry
extern __typeof (xmlHashUpdateEntry) xmlHashUpdateEntry__internal_alias __attribute((visibility("hidden")));
#define xmlHashUpdateEntry xmlHashUpdateEntry__internal_alias
#endif
#endif

#ifdef bottom_hash
#undef xmlHashUpdateEntry2
extern __typeof (xmlHashUpdateEntry2) xmlHashUpdateEntry2 __attribute((alias("xmlHashUpdateEntry2__internal_alias")));
#else
#ifndef xmlHashUpdateEntry2
extern __typeof (xmlHashUpdateEntry2) xmlHashUpdateEntry2__internal_alias __attribute((visibility("hidden")));
#define xmlHashUpdateEntry2 xmlHashUpdateEntry2__internal_alias
#endif
#endif

#ifdef bottom_hash
#undef xmlHashUpdateEntry3
extern __typeof (xmlHashUpdateEntry3) xmlHashUpdateEntry3 __attribute((alias("xmlHashUpdateEntry3__internal_alias")));
#else
#ifndef xmlHashUpdateEntry3
extern __typeof (xmlHashUpdateEntry3) xmlHashUpdateEntry3__internal_alias __attribute((visibility("hidden")));
#define xmlHashUpdateEntry3 xmlHashUpdateEntry3__internal_alias
#endif
#endif

#if defined(LIBXML_FTP_ENABLED)
#ifdef bottom_xmlIO
#undef xmlIOFTPClose
extern __typeof (xmlIOFTPClose) xmlIOFTPClose __attribute((alias("xmlIOFTPClose__internal_alias")));
#else
#ifndef xmlIOFTPClose
extern __typeof (xmlIOFTPClose) xmlIOFTPClose__internal_alias __attribute((visibility("hidden")));
#define xmlIOFTPClose xmlIOFTPClose__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_FTP_ENABLED)
#ifdef bottom_xmlIO
#undef xmlIOFTPMatch
extern __typeof (xmlIOFTPMatch) xmlIOFTPMatch __attribute((alias("xmlIOFTPMatch__internal_alias")));
#else
#ifndef xmlIOFTPMatch
extern __typeof (xmlIOFTPMatch) xmlIOFTPMatch__internal_alias __attribute((visibility("hidden")));
#define xmlIOFTPMatch xmlIOFTPMatch__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_FTP_ENABLED)
#ifdef bottom_xmlIO
#undef xmlIOFTPOpen
extern __typeof (xmlIOFTPOpen) xmlIOFTPOpen __attribute((alias("xmlIOFTPOpen__internal_alias")));
#else
#ifndef xmlIOFTPOpen
extern __typeof (xmlIOFTPOpen) xmlIOFTPOpen__internal_alias __attribute((visibility("hidden")));
#define xmlIOFTPOpen xmlIOFTPOpen__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_FTP_ENABLED)
#ifdef bottom_xmlIO
#undef xmlIOFTPRead
extern __typeof (xmlIOFTPRead) xmlIOFTPRead __attribute((alias("xmlIOFTPRead__internal_alias")));
#else
#ifndef xmlIOFTPRead
extern __typeof (xmlIOFTPRead) xmlIOFTPRead__internal_alias __attribute((visibility("hidden")));
#define xmlIOFTPRead xmlIOFTPRead__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_HTTP_ENABLED)
#ifdef bottom_xmlIO
#undef xmlIOHTTPClose
extern __typeof (xmlIOHTTPClose) xmlIOHTTPClose __attribute((alias("xmlIOHTTPClose__internal_alias")));
#else
#ifndef xmlIOHTTPClose
extern __typeof (xmlIOHTTPClose) xmlIOHTTPClose__internal_alias __attribute((visibility("hidden")));
#define xmlIOHTTPClose xmlIOHTTPClose__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_HTTP_ENABLED)
#ifdef bottom_xmlIO
#undef xmlIOHTTPMatch
extern __typeof (xmlIOHTTPMatch) xmlIOHTTPMatch __attribute((alias("xmlIOHTTPMatch__internal_alias")));
#else
#ifndef xmlIOHTTPMatch
extern __typeof (xmlIOHTTPMatch) xmlIOHTTPMatch__internal_alias __attribute((visibility("hidden")));
#define xmlIOHTTPMatch xmlIOHTTPMatch__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_HTTP_ENABLED)
#ifdef bottom_xmlIO
#undef xmlIOHTTPOpen
extern __typeof (xmlIOHTTPOpen) xmlIOHTTPOpen __attribute((alias("xmlIOHTTPOpen__internal_alias")));
#else
#ifndef xmlIOHTTPOpen
extern __typeof (xmlIOHTTPOpen) xmlIOHTTPOpen__internal_alias __attribute((visibility("hidden")));
#define xmlIOHTTPOpen xmlIOHTTPOpen__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_HTTP_ENABLED) && defined(LIBXML_OUTPUT_ENABLED)
#ifdef bottom_xmlIO
#undef xmlIOHTTPOpenW
extern __typeof (xmlIOHTTPOpenW) xmlIOHTTPOpenW __attribute((alias("xmlIOHTTPOpenW__internal_alias")));
#else
#ifndef xmlIOHTTPOpenW
extern __typeof (xmlIOHTTPOpenW) xmlIOHTTPOpenW__internal_alias __attribute((visibility("hidden")));
#define xmlIOHTTPOpenW xmlIOHTTPOpenW__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_HTTP_ENABLED)
#ifdef bottom_xmlIO
#undef xmlIOHTTPRead
extern __typeof (xmlIOHTTPRead) xmlIOHTTPRead __attribute((alias("xmlIOHTTPRead__internal_alias")));
#else
#ifndef xmlIOHTTPRead
extern __typeof (xmlIOHTTPRead) xmlIOHTTPRead__internal_alias __attribute((visibility("hidden")));
#define xmlIOHTTPRead xmlIOHTTPRead__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_VALID_ENABLED)
#ifdef bottom_parser
#undef xmlIOParseDTD
extern __typeof (xmlIOParseDTD) xmlIOParseDTD __attribute((alias("xmlIOParseDTD__internal_alias")));
#else
#ifndef xmlIOParseDTD
extern __typeof (xmlIOParseDTD) xmlIOParseDTD__internal_alias __attribute((visibility("hidden")));
#define xmlIOParseDTD xmlIOParseDTD__internal_alias
#endif
#endif
#endif

#ifdef bottom_encoding
#undef xmlInitCharEncodingHandlers
extern __typeof (xmlInitCharEncodingHandlers) xmlInitCharEncodingHandlers __attribute((alias("xmlInitCharEncodingHandlers__internal_alias")));
#else
#ifndef xmlInitCharEncodingHandlers
extern __typeof (xmlInitCharEncodingHandlers) xmlInitCharEncodingHandlers__internal_alias __attribute((visibility("hidden")));
#define xmlInitCharEncodingHandlers xmlInitCharEncodingHandlers__internal_alias
#endif
#endif

#ifdef bottom_globals
#undef xmlInitGlobals
extern __typeof (xmlInitGlobals) xmlInitGlobals __attribute((alias("xmlInitGlobals__internal_alias")));
#else
#ifndef xmlInitGlobals
extern __typeof (xmlInitGlobals) xmlInitGlobals__internal_alias __attribute((visibility("hidden")));
#define xmlInitGlobals xmlInitGlobals__internal_alias
#endif
#endif

#ifdef bottom_xmlmemory
#undef xmlInitMemory
extern __typeof (xmlInitMemory) xmlInitMemory __attribute((alias("xmlInitMemory__internal_alias")));
#else
#ifndef xmlInitMemory
extern __typeof (xmlInitMemory) xmlInitMemory__internal_alias __attribute((visibility("hidden")));
#define xmlInitMemory xmlInitMemory__internal_alias
#endif
#endif

#ifdef bottom_parserInternals
#undef xmlInitNodeInfoSeq
extern __typeof (xmlInitNodeInfoSeq) xmlInitNodeInfoSeq __attribute((alias("xmlInitNodeInfoSeq__internal_alias")));
#else
#ifndef xmlInitNodeInfoSeq
extern __typeof (xmlInitNodeInfoSeq) xmlInitNodeInfoSeq__internal_alias __attribute((visibility("hidden")));
#define xmlInitNodeInfoSeq xmlInitNodeInfoSeq__internal_alias
#endif
#endif

#ifdef bottom_parser
#undef xmlInitParser
extern __typeof (xmlInitParser) xmlInitParser __attribute((alias("xmlInitParser__internal_alias")));
#else
#ifndef xmlInitParser
extern __typeof (xmlInitParser) xmlInitParser__internal_alias __attribute((visibility("hidden")));
#define xmlInitParser xmlInitParser__internal_alias
#endif
#endif

#ifdef bottom_parserInternals
#undef xmlInitParserCtxt
extern __typeof (xmlInitParserCtxt) xmlInitParserCtxt __attribute((alias("xmlInitParserCtxt__internal_alias")));
#else
#ifndef xmlInitParserCtxt
extern __typeof (xmlInitParserCtxt) xmlInitParserCtxt__internal_alias __attribute((visibility("hidden")));
#define xmlInitParserCtxt xmlInitParserCtxt__internal_alias
#endif
#endif

#ifdef bottom_threads
#undef xmlInitThreads
extern __typeof (xmlInitThreads) xmlInitThreads __attribute((alias("xmlInitThreads__internal_alias")));
#else
#ifndef xmlInitThreads
extern __typeof (xmlInitThreads) xmlInitThreads__internal_alias __attribute((visibility("hidden")));
#define xmlInitThreads xmlInitThreads__internal_alias
#endif
#endif

#if defined(LIBXML_CATALOG_ENABLED)
#ifdef bottom_catalog
#undef xmlInitializeCatalog
extern __typeof (xmlInitializeCatalog) xmlInitializeCatalog __attribute((alias("xmlInitializeCatalog__internal_alias")));
#else
#ifndef xmlInitializeCatalog
extern __typeof (xmlInitializeCatalog) xmlInitializeCatalog__internal_alias __attribute((visibility("hidden")));
#define xmlInitializeCatalog xmlInitializeCatalog__internal_alias
#endif
#endif
#endif

#ifdef bottom_globals
#undef xmlInitializeGlobalState
extern __typeof (xmlInitializeGlobalState) xmlInitializeGlobalState __attribute((alias("xmlInitializeGlobalState__internal_alias")));
#else
#ifndef xmlInitializeGlobalState
extern __typeof (xmlInitializeGlobalState) xmlInitializeGlobalState__internal_alias __attribute((visibility("hidden")));
#define xmlInitializeGlobalState xmlInitializeGlobalState__internal_alias
#endif
#endif

#if defined(LIBXML_LEGACY_ENABLED)
#ifdef bottom_legacy
#undef xmlInitializePredefinedEntities
extern __typeof (xmlInitializePredefinedEntities) xmlInitializePredefinedEntities __attribute((alias("xmlInitializePredefinedEntities__internal_alias")));
#else
#ifndef xmlInitializePredefinedEntities
extern __typeof (xmlInitializePredefinedEntities) xmlInitializePredefinedEntities__internal_alias __attribute((visibility("hidden")));
#define xmlInitializePredefinedEntities xmlInitializePredefinedEntities__internal_alias
#endif
#endif
#endif

#ifdef bottom_chvalid
#undef xmlIsBaseChar
extern __typeof (xmlIsBaseChar) xmlIsBaseChar __attribute((alias("xmlIsBaseChar__internal_alias")));
#else
#ifndef xmlIsBaseChar
extern __typeof (xmlIsBaseChar) xmlIsBaseChar__internal_alias __attribute((visibility("hidden")));
#define xmlIsBaseChar xmlIsBaseChar__internal_alias
#endif
#endif

#ifdef bottom_chvalid
#undef xmlIsBlank
extern __typeof (xmlIsBlank) xmlIsBlank __attribute((alias("xmlIsBlank__internal_alias")));
#else
#ifndef xmlIsBlank
extern __typeof (xmlIsBlank) xmlIsBlank__internal_alias __attribute((visibility("hidden")));
#define xmlIsBlank xmlIsBlank__internal_alias
#endif
#endif

#ifdef bottom_tree
#undef xmlIsBlankNode
extern __typeof (xmlIsBlankNode) xmlIsBlankNode __attribute((alias("xmlIsBlankNode__internal_alias")));
#else
#ifndef xmlIsBlankNode
extern __typeof (xmlIsBlankNode) xmlIsBlankNode__internal_alias __attribute((visibility("hidden")));
#define xmlIsBlankNode xmlIsBlankNode__internal_alias
#endif
#endif

#ifdef bottom_chvalid
#undef xmlIsChar
extern __typeof (xmlIsChar) xmlIsChar __attribute((alias("xmlIsChar__internal_alias")));
#else
#ifndef xmlIsChar
extern __typeof (xmlIsChar) xmlIsChar__internal_alias __attribute((visibility("hidden")));
#define xmlIsChar xmlIsChar__internal_alias
#endif
#endif

#ifdef bottom_chvalid
#undef xmlIsCombining
extern __typeof (xmlIsCombining) xmlIsCombining __attribute((alias("xmlIsCombining__internal_alias")));
#else
#ifndef xmlIsCombining
extern __typeof (xmlIsCombining) xmlIsCombining__internal_alias __attribute((visibility("hidden")));
#define xmlIsCombining xmlIsCombining__internal_alias
#endif
#endif

#ifdef bottom_chvalid
#undef xmlIsDigit
extern __typeof (xmlIsDigit) xmlIsDigit __attribute((alias("xmlIsDigit__internal_alias")));
#else
#ifndef xmlIsDigit
extern __typeof (xmlIsDigit) xmlIsDigit__internal_alias __attribute((visibility("hidden")));
#define xmlIsDigit xmlIsDigit__internal_alias
#endif
#endif

#ifdef bottom_chvalid
#undef xmlIsExtender
extern __typeof (xmlIsExtender) xmlIsExtender __attribute((alias("xmlIsExtender__internal_alias")));
#else
#ifndef xmlIsExtender
extern __typeof (xmlIsExtender) xmlIsExtender__internal_alias __attribute((visibility("hidden")));
#define xmlIsExtender xmlIsExtender__internal_alias
#endif
#endif

#ifdef bottom_valid
#undef xmlIsID
extern __typeof (xmlIsID) xmlIsID __attribute((alias("xmlIsID__internal_alias")));
#else
#ifndef xmlIsID
extern __typeof (xmlIsID) xmlIsID__internal_alias __attribute((visibility("hidden")));
#define xmlIsID xmlIsID__internal_alias
#endif
#endif

#ifdef bottom_chvalid
#undef xmlIsIdeographic
extern __typeof (xmlIsIdeographic) xmlIsIdeographic __attribute((alias("xmlIsIdeographic__internal_alias")));
#else
#ifndef xmlIsIdeographic
extern __typeof (xmlIsIdeographic) xmlIsIdeographic__internal_alias __attribute((visibility("hidden")));
#define xmlIsIdeographic xmlIsIdeographic__internal_alias
#endif
#endif

#ifdef bottom_parserInternals
#undef xmlIsLetter
extern __typeof (xmlIsLetter) xmlIsLetter __attribute((alias("xmlIsLetter__internal_alias")));
#else
#ifndef xmlIsLetter
extern __typeof (xmlIsLetter) xmlIsLetter__internal_alias __attribute((visibility("hidden")));
#define xmlIsLetter xmlIsLetter__internal_alias
#endif
#endif

#ifdef bottom_threads
#undef xmlIsMainThread
extern __typeof (xmlIsMainThread) xmlIsMainThread __attribute((alias("xmlIsMainThread__internal_alias")));
#else
#ifndef xmlIsMainThread
extern __typeof (xmlIsMainThread) xmlIsMainThread__internal_alias __attribute((visibility("hidden")));
#define xmlIsMainThread xmlIsMainThread__internal_alias
#endif
#endif

#ifdef bottom_valid
#undef xmlIsMixedElement
extern __typeof (xmlIsMixedElement) xmlIsMixedElement __attribute((alias("xmlIsMixedElement__internal_alias")));
#else
#ifndef xmlIsMixedElement
extern __typeof (xmlIsMixedElement) xmlIsMixedElement__internal_alias __attribute((visibility("hidden")));
#define xmlIsMixedElement xmlIsMixedElement__internal_alias
#endif
#endif

#ifdef bottom_chvalid
#undef xmlIsPubidChar
extern __typeof (xmlIsPubidChar) xmlIsPubidChar __attribute((alias("xmlIsPubidChar__internal_alias")));
#else
#ifndef xmlIsPubidChar
extern __typeof (xmlIsPubidChar) xmlIsPubidChar__internal_alias __attribute((visibility("hidden")));
#define xmlIsPubidChar xmlIsPubidChar__internal_alias
#endif
#endif

#ifdef bottom_valid
#undef xmlIsRef
extern __typeof (xmlIsRef) xmlIsRef __attribute((alias("xmlIsRef__internal_alias")));
#else
#ifndef xmlIsRef
extern __typeof (xmlIsRef) xmlIsRef__internal_alias __attribute((visibility("hidden")));
#define xmlIsRef xmlIsRef__internal_alias
#endif
#endif

#ifdef bottom_threads
#undef xmlIsThreadsEnabled
extern __typeof (xmlIsThreadsEnabled) xmlIsThreadsEnabled __attribute((alias("xmlIsThreadsEnabled__internal_alias")));
#else
#ifndef xmlIsThreadsEnabled
extern __typeof (xmlIsThreadsEnabled) xmlIsThreadsEnabled__internal_alias __attribute((visibility("hidden")));
#define xmlIsThreadsEnabled xmlIsThreadsEnabled__internal_alias
#endif
#endif

#ifdef bottom_xmlsave
#undef xmlIsXHTML
extern __typeof (xmlIsXHTML) xmlIsXHTML __attribute((alias("xmlIsXHTML__internal_alias")));
#else
#ifndef xmlIsXHTML
extern __typeof (xmlIsXHTML) xmlIsXHTML__internal_alias __attribute((visibility("hidden")));
#define xmlIsXHTML xmlIsXHTML__internal_alias
#endif
#endif

#ifdef bottom_parserInternals
#undef xmlKeepBlanksDefault
extern __typeof (xmlKeepBlanksDefault) xmlKeepBlanksDefault __attribute((alias("xmlKeepBlanksDefault__internal_alias")));
#else
#ifndef xmlKeepBlanksDefault
extern __typeof (xmlKeepBlanksDefault) xmlKeepBlanksDefault__internal_alias __attribute((visibility("hidden")));
#define xmlKeepBlanksDefault xmlKeepBlanksDefault__internal_alias
#endif
#endif

#ifdef bottom_parserInternals
#undef xmlLineNumbersDefault
extern __typeof (xmlLineNumbersDefault) xmlLineNumbersDefault __attribute((alias("xmlLineNumbersDefault__internal_alias")));
#else
#ifndef xmlLineNumbersDefault
extern __typeof (xmlLineNumbersDefault) xmlLineNumbersDefault__internal_alias __attribute((visibility("hidden")));
#define xmlLineNumbersDefault xmlLineNumbersDefault__internal_alias
#endif
#endif

#ifdef bottom_list
#undef xmlLinkGetData
extern __typeof (xmlLinkGetData) xmlLinkGetData __attribute((alias("xmlLinkGetData__internal_alias")));
#else
#ifndef xmlLinkGetData
extern __typeof (xmlLinkGetData) xmlLinkGetData__internal_alias __attribute((visibility("hidden")));
#define xmlLinkGetData xmlLinkGetData__internal_alias
#endif
#endif

#ifdef bottom_list
#undef xmlListAppend
extern __typeof (xmlListAppend) xmlListAppend __attribute((alias("xmlListAppend__internal_alias")));
#else
#ifndef xmlListAppend
extern __typeof (xmlListAppend) xmlListAppend__internal_alias __attribute((visibility("hidden")));
#define xmlListAppend xmlListAppend__internal_alias
#endif
#endif

#ifdef bottom_list
#undef xmlListClear
extern __typeof (xmlListClear) xmlListClear __attribute((alias("xmlListClear__internal_alias")));
#else
#ifndef xmlListClear
extern __typeof (xmlListClear) xmlListClear__internal_alias __attribute((visibility("hidden")));
#define xmlListClear xmlListClear__internal_alias
#endif
#endif

#ifdef bottom_list
#undef xmlListCopy
extern __typeof (xmlListCopy) xmlListCopy __attribute((alias("xmlListCopy__internal_alias")));
#else
#ifndef xmlListCopy
extern __typeof (xmlListCopy) xmlListCopy__internal_alias __attribute((visibility("hidden")));
#define xmlListCopy xmlListCopy__internal_alias
#endif
#endif

#ifdef bottom_list
#undef xmlListCreate
extern __typeof (xmlListCreate) xmlListCreate __attribute((alias("xmlListCreate__internal_alias")));
#else
#ifndef xmlListCreate
extern __typeof (xmlListCreate) xmlListCreate__internal_alias __attribute((visibility("hidden")));
#define xmlListCreate xmlListCreate__internal_alias
#endif
#endif

#ifdef bottom_list
#undef xmlListDelete
extern __typeof (xmlListDelete) xmlListDelete __attribute((alias("xmlListDelete__internal_alias")));
#else
#ifndef xmlListDelete
extern __typeof (xmlListDelete) xmlListDelete__internal_alias __attribute((visibility("hidden")));
#define xmlListDelete xmlListDelete__internal_alias
#endif
#endif

#ifdef bottom_list
#undef xmlListDup
extern __typeof (xmlListDup) xmlListDup __attribute((alias("xmlListDup__internal_alias")));
#else
#ifndef xmlListDup
extern __typeof (xmlListDup) xmlListDup__internal_alias __attribute((visibility("hidden")));
#define xmlListDup xmlListDup__internal_alias
#endif
#endif

#ifdef bottom_list
#undef xmlListEmpty
extern __typeof (xmlListEmpty) xmlListEmpty __attribute((alias("xmlListEmpty__internal_alias")));
#else
#ifndef xmlListEmpty
extern __typeof (xmlListEmpty) xmlListEmpty__internal_alias __attribute((visibility("hidden")));
#define xmlListEmpty xmlListEmpty__internal_alias
#endif
#endif

#ifdef bottom_list
#undef xmlListEnd
extern __typeof (xmlListEnd) xmlListEnd __attribute((alias("xmlListEnd__internal_alias")));
#else
#ifndef xmlListEnd
extern __typeof (xmlListEnd) xmlListEnd__internal_alias __attribute((visibility("hidden")));
#define xmlListEnd xmlListEnd__internal_alias
#endif
#endif

#ifdef bottom_list
#undef xmlListFront
extern __typeof (xmlListFront) xmlListFront __attribute((alias("xmlListFront__internal_alias")));
#else
#ifndef xmlListFront
extern __typeof (xmlListFront) xmlListFront__internal_alias __attribute((visibility("hidden")));
#define xmlListFront xmlListFront__internal_alias
#endif
#endif

#ifdef bottom_list
#undef xmlListInsert
extern __typeof (xmlListInsert) xmlListInsert __attribute((alias("xmlListInsert__internal_alias")));
#else
#ifndef xmlListInsert
extern __typeof (xmlListInsert) xmlListInsert__internal_alias __attribute((visibility("hidden")));
#define xmlListInsert xmlListInsert__internal_alias
#endif
#endif

#ifdef bottom_list
#undef xmlListMerge
extern __typeof (xmlListMerge) xmlListMerge __attribute((alias("xmlListMerge__internal_alias")));
#else
#ifndef xmlListMerge
extern __typeof (xmlListMerge) xmlListMerge__internal_alias __attribute((visibility("hidden")));
#define xmlListMerge xmlListMerge__internal_alias
#endif
#endif

#ifdef bottom_list
#undef xmlListPopBack
extern __typeof (xmlListPopBack) xmlListPopBack __attribute((alias("xmlListPopBack__internal_alias")));
#else
#ifndef xmlListPopBack
extern __typeof (xmlListPopBack) xmlListPopBack__internal_alias __attribute((visibility("hidden")));
#define xmlListPopBack xmlListPopBack__internal_alias
#endif
#endif

#ifdef bottom_list
#undef xmlListPopFront
extern __typeof (xmlListPopFront) xmlListPopFront __attribute((alias("xmlListPopFront__internal_alias")));
#else
#ifndef xmlListPopFront
extern __typeof (xmlListPopFront) xmlListPopFront__internal_alias __attribute((visibility("hidden")));
#define xmlListPopFront xmlListPopFront__internal_alias
#endif
#endif

#ifdef bottom_list
#undef xmlListPushBack
extern __typeof (xmlListPushBack) xmlListPushBack __attribute((alias("xmlListPushBack__internal_alias")));
#else
#ifndef xmlListPushBack
extern __typeof (xmlListPushBack) xmlListPushBack__internal_alias __attribute((visibility("hidden")));
#define xmlListPushBack xmlListPushBack__internal_alias
#endif
#endif

#ifdef bottom_list
#undef xmlListPushFront
extern __typeof (xmlListPushFront) xmlListPushFront __attribute((alias("xmlListPushFront__internal_alias")));
#else
#ifndef xmlListPushFront
extern __typeof (xmlListPushFront) xmlListPushFront__internal_alias __attribute((visibility("hidden")));
#define xmlListPushFront xmlListPushFront__internal_alias
#endif
#endif

#ifdef bottom_list
#undef xmlListRemoveAll
extern __typeof (xmlListRemoveAll) xmlListRemoveAll __attribute((alias("xmlListRemoveAll__internal_alias")));
#else
#ifndef xmlListRemoveAll
extern __typeof (xmlListRemoveAll) xmlListRemoveAll__internal_alias __attribute((visibility("hidden")));
#define xmlListRemoveAll xmlListRemoveAll__internal_alias
#endif
#endif

#ifdef bottom_list
#undef xmlListRemoveFirst
extern __typeof (xmlListRemoveFirst) xmlListRemoveFirst __attribute((alias("xmlListRemoveFirst__internal_alias")));
#else
#ifndef xmlListRemoveFirst
extern __typeof (xmlListRemoveFirst) xmlListRemoveFirst__internal_alias __attribute((visibility("hidden")));
#define xmlListRemoveFirst xmlListRemoveFirst__internal_alias
#endif
#endif

#ifdef bottom_list
#undef xmlListRemoveLast
extern __typeof (xmlListRemoveLast) xmlListRemoveLast __attribute((alias("xmlListRemoveLast__internal_alias")));
#else
#ifndef xmlListRemoveLast
extern __typeof (xmlListRemoveLast) xmlListRemoveLast__internal_alias __attribute((visibility("hidden")));
#define xmlListRemoveLast xmlListRemoveLast__internal_alias
#endif
#endif

#ifdef bottom_list
#undef xmlListReverse
extern __typeof (xmlListReverse) xmlListReverse __attribute((alias("xmlListReverse__internal_alias")));
#else
#ifndef xmlListReverse
extern __typeof (xmlListReverse) xmlListReverse__internal_alias __attribute((visibility("hidden")));
#define xmlListReverse xmlListReverse__internal_alias
#endif
#endif

#ifdef bottom_list
#undef xmlListReverseSearch
extern __typeof (xmlListReverseSearch) xmlListReverseSearch __attribute((alias("xmlListReverseSearch__internal_alias")));
#else
#ifndef xmlListReverseSearch
extern __typeof (xmlListReverseSearch) xmlListReverseSearch__internal_alias __attribute((visibility("hidden")));
#define xmlListReverseSearch xmlListReverseSearch__internal_alias
#endif
#endif

#ifdef bottom_list
#undef xmlListReverseWalk
extern __typeof (xmlListReverseWalk) xmlListReverseWalk __attribute((alias("xmlListReverseWalk__internal_alias")));
#else
#ifndef xmlListReverseWalk
extern __typeof (xmlListReverseWalk) xmlListReverseWalk__internal_alias __attribute((visibility("hidden")));
#define xmlListReverseWalk xmlListReverseWalk__internal_alias
#endif
#endif

#ifdef bottom_list
#undef xmlListSearch
extern __typeof (xmlListSearch) xmlListSearch __attribute((alias("xmlListSearch__internal_alias")));
#else
#ifndef xmlListSearch
extern __typeof (xmlListSearch) xmlListSearch__internal_alias __attribute((visibility("hidden")));
#define xmlListSearch xmlListSearch__internal_alias
#endif
#endif

#ifdef bottom_list
#undef xmlListSize
extern __typeof (xmlListSize) xmlListSize __attribute((alias("xmlListSize__internal_alias")));
#else
#ifndef xmlListSize
extern __typeof (xmlListSize) xmlListSize__internal_alias __attribute((visibility("hidden")));
#define xmlListSize xmlListSize__internal_alias
#endif
#endif

#ifdef bottom_list
#undef xmlListSort
extern __typeof (xmlListSort) xmlListSort __attribute((alias("xmlListSort__internal_alias")));
#else
#ifndef xmlListSort
extern __typeof (xmlListSort) xmlListSort__internal_alias __attribute((visibility("hidden")));
#define xmlListSort xmlListSort__internal_alias
#endif
#endif

#ifdef bottom_list
#undef xmlListWalk
extern __typeof (xmlListWalk) xmlListWalk __attribute((alias("xmlListWalk__internal_alias")));
#else
#ifndef xmlListWalk
extern __typeof (xmlListWalk) xmlListWalk__internal_alias __attribute((visibility("hidden")));
#define xmlListWalk xmlListWalk__internal_alias
#endif
#endif

#if defined(LIBXML_CATALOG_ENABLED)
#ifdef bottom_catalog
#undef xmlLoadACatalog
extern __typeof (xmlLoadACatalog) xmlLoadACatalog __attribute((alias("xmlLoadACatalog__internal_alias")));
#else
#ifndef xmlLoadACatalog
extern __typeof (xmlLoadACatalog) xmlLoadACatalog__internal_alias __attribute((visibility("hidden")));
#define xmlLoadACatalog xmlLoadACatalog__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_CATALOG_ENABLED)
#ifdef bottom_catalog
#undef xmlLoadCatalog
extern __typeof (xmlLoadCatalog) xmlLoadCatalog __attribute((alias("xmlLoadCatalog__internal_alias")));
#else
#ifndef xmlLoadCatalog
extern __typeof (xmlLoadCatalog) xmlLoadCatalog__internal_alias __attribute((visibility("hidden")));
#define xmlLoadCatalog xmlLoadCatalog__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_CATALOG_ENABLED)
#ifdef bottom_catalog
#undef xmlLoadCatalogs
extern __typeof (xmlLoadCatalogs) xmlLoadCatalogs __attribute((alias("xmlLoadCatalogs__internal_alias")));
#else
#ifndef xmlLoadCatalogs
extern __typeof (xmlLoadCatalogs) xmlLoadCatalogs__internal_alias __attribute((visibility("hidden")));
#define xmlLoadCatalogs xmlLoadCatalogs__internal_alias
#endif
#endif
#endif

#ifdef bottom_xmlIO
#undef xmlLoadExternalEntity
extern __typeof (xmlLoadExternalEntity) xmlLoadExternalEntity __attribute((alias("xmlLoadExternalEntity__internal_alias")));
#else
#ifndef xmlLoadExternalEntity
extern __typeof (xmlLoadExternalEntity) xmlLoadExternalEntity__internal_alias __attribute((visibility("hidden")));
#define xmlLoadExternalEntity xmlLoadExternalEntity__internal_alias
#endif
#endif

#if defined(LIBXML_CATALOG_ENABLED)
#ifdef bottom_catalog
#undef xmlLoadSGMLSuperCatalog
extern __typeof (xmlLoadSGMLSuperCatalog) xmlLoadSGMLSuperCatalog __attribute((alias("xmlLoadSGMLSuperCatalog__internal_alias")));
#else
#ifndef xmlLoadSGMLSuperCatalog
extern __typeof (xmlLoadSGMLSuperCatalog) xmlLoadSGMLSuperCatalog__internal_alias __attribute((visibility("hidden")));
#define xmlLoadSGMLSuperCatalog xmlLoadSGMLSuperCatalog__internal_alias
#endif
#endif
#endif

#ifdef bottom_threads
#undef xmlLockLibrary
extern __typeof (xmlLockLibrary) xmlLockLibrary __attribute((alias("xmlLockLibrary__internal_alias")));
#else
#ifndef xmlLockLibrary
extern __typeof (xmlLockLibrary) xmlLockLibrary__internal_alias __attribute((visibility("hidden")));
#define xmlLockLibrary xmlLockLibrary__internal_alias
#endif
#endif

#if defined(LIBXML_DEBUG_ENABLED)
#ifdef bottom_debugXML
#undef xmlLsCountNode
extern __typeof (xmlLsCountNode) xmlLsCountNode __attribute((alias("xmlLsCountNode__internal_alias")));
#else
#ifndef xmlLsCountNode
extern __typeof (xmlLsCountNode) xmlLsCountNode__internal_alias __attribute((visibility("hidden")));
#define xmlLsCountNode xmlLsCountNode__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_DEBUG_ENABLED)
#ifdef bottom_debugXML
#undef xmlLsOneNode
extern __typeof (xmlLsOneNode) xmlLsOneNode __attribute((alias("xmlLsOneNode__internal_alias")));
#else
#ifndef xmlLsOneNode
extern __typeof (xmlLsOneNode) xmlLsOneNode__internal_alias __attribute((visibility("hidden")));
#define xmlLsOneNode xmlLsOneNode__internal_alias
#endif
#endif
#endif

#ifdef bottom_xmlmemory
#undef xmlMallocAtomicLoc
extern __typeof (xmlMallocAtomicLoc) xmlMallocAtomicLoc __attribute((alias("xmlMallocAtomicLoc__internal_alias")));
#else
#ifndef xmlMallocAtomicLoc
extern __typeof (xmlMallocAtomicLoc) xmlMallocAtomicLoc__internal_alias __attribute((visibility("hidden")));
#define xmlMallocAtomicLoc xmlMallocAtomicLoc__internal_alias
#endif
#endif

#ifdef bottom_xmlmemory
#undef xmlMallocLoc
extern __typeof (xmlMallocLoc) xmlMallocLoc __attribute((alias("xmlMallocLoc__internal_alias")));
#else
#ifndef xmlMallocLoc
extern __typeof (xmlMallocLoc) xmlMallocLoc__internal_alias __attribute((visibility("hidden")));
#define xmlMallocLoc xmlMallocLoc__internal_alias
#endif
#endif

#ifdef bottom_xmlmemory
#undef xmlMemBlocks
extern __typeof (xmlMemBlocks) xmlMemBlocks __attribute((alias("xmlMemBlocks__internal_alias")));
#else
#ifndef xmlMemBlocks
extern __typeof (xmlMemBlocks) xmlMemBlocks__internal_alias __attribute((visibility("hidden")));
#define xmlMemBlocks xmlMemBlocks__internal_alias
#endif
#endif

#ifdef bottom_xmlmemory
#undef xmlMemDisplay
extern __typeof (xmlMemDisplay) xmlMemDisplay __attribute((alias("xmlMemDisplay__internal_alias")));
#else
#ifndef xmlMemDisplay
extern __typeof (xmlMemDisplay) xmlMemDisplay__internal_alias __attribute((visibility("hidden")));
#define xmlMemDisplay xmlMemDisplay__internal_alias
#endif
#endif

#ifdef bottom_xmlmemory
#undef xmlMemFree
extern __typeof (xmlMemFree) xmlMemFree __attribute((alias("xmlMemFree__internal_alias")));
#else
#ifndef xmlMemFree
extern __typeof (xmlMemFree) xmlMemFree__internal_alias __attribute((visibility("hidden")));
#define xmlMemFree xmlMemFree__internal_alias
#endif
#endif

#ifdef bottom_xmlmemory
#undef xmlMemGet
extern __typeof (xmlMemGet) xmlMemGet __attribute((alias("xmlMemGet__internal_alias")));
#else
#ifndef xmlMemGet
extern __typeof (xmlMemGet) xmlMemGet__internal_alias __attribute((visibility("hidden")));
#define xmlMemGet xmlMemGet__internal_alias
#endif
#endif

#ifdef bottom_xmlmemory
#undef xmlMemMalloc
extern __typeof (xmlMemMalloc) xmlMemMalloc __attribute((alias("xmlMemMalloc__internal_alias")));
#else
#ifndef xmlMemMalloc
extern __typeof (xmlMemMalloc) xmlMemMalloc__internal_alias __attribute((visibility("hidden")));
#define xmlMemMalloc xmlMemMalloc__internal_alias
#endif
#endif

#ifdef bottom_xmlmemory
#undef xmlMemRealloc
extern __typeof (xmlMemRealloc) xmlMemRealloc __attribute((alias("xmlMemRealloc__internal_alias")));
#else
#ifndef xmlMemRealloc
extern __typeof (xmlMemRealloc) xmlMemRealloc__internal_alias __attribute((visibility("hidden")));
#define xmlMemRealloc xmlMemRealloc__internal_alias
#endif
#endif

#ifdef bottom_xmlmemory
#undef xmlMemSetup
extern __typeof (xmlMemSetup) xmlMemSetup __attribute((alias("xmlMemSetup__internal_alias")));
#else
#ifndef xmlMemSetup
extern __typeof (xmlMemSetup) xmlMemSetup__internal_alias __attribute((visibility("hidden")));
#define xmlMemSetup xmlMemSetup__internal_alias
#endif
#endif

#ifdef bottom_xmlmemory
#undef xmlMemShow
extern __typeof (xmlMemShow) xmlMemShow __attribute((alias("xmlMemShow__internal_alias")));
#else
#ifndef xmlMemShow
extern __typeof (xmlMemShow) xmlMemShow__internal_alias __attribute((visibility("hidden")));
#define xmlMemShow xmlMemShow__internal_alias
#endif
#endif

#ifdef bottom_xmlmemory
#undef xmlMemStrdupLoc
extern __typeof (xmlMemStrdupLoc) xmlMemStrdupLoc __attribute((alias("xmlMemStrdupLoc__internal_alias")));
#else
#ifndef xmlMemStrdupLoc
extern __typeof (xmlMemStrdupLoc) xmlMemStrdupLoc__internal_alias __attribute((visibility("hidden")));
#define xmlMemStrdupLoc xmlMemStrdupLoc__internal_alias
#endif
#endif

#ifdef bottom_xmlmemory
#undef xmlMemUsed
extern __typeof (xmlMemUsed) xmlMemUsed __attribute((alias("xmlMemUsed__internal_alias")));
#else
#ifndef xmlMemUsed
extern __typeof (xmlMemUsed) xmlMemUsed__internal_alias __attribute((visibility("hidden")));
#define xmlMemUsed xmlMemUsed__internal_alias
#endif
#endif

#ifdef bottom_xmlmemory
#undef xmlMemoryDump
extern __typeof (xmlMemoryDump) xmlMemoryDump __attribute((alias("xmlMemoryDump__internal_alias")));
#else
#ifndef xmlMemoryDump
extern __typeof (xmlMemoryDump) xmlMemoryDump__internal_alias __attribute((visibility("hidden")));
#define xmlMemoryDump xmlMemoryDump__internal_alias
#endif
#endif

#ifdef bottom_xmlmemory
#undef xmlMemoryStrdup
extern __typeof (xmlMemoryStrdup) xmlMemoryStrdup __attribute((alias("xmlMemoryStrdup__internal_alias")));
#else
#ifndef xmlMemoryStrdup
extern __typeof (xmlMemoryStrdup) xmlMemoryStrdup__internal_alias __attribute((visibility("hidden")));
#define xmlMemoryStrdup xmlMemoryStrdup__internal_alias
#endif
#endif

#if defined(LIBXML_MODULES_ENABLED)
#ifdef bottom_xmlmodule
#undef xmlModuleClose
extern __typeof (xmlModuleClose) xmlModuleClose __attribute((alias("xmlModuleClose__internal_alias")));
#else
#ifndef xmlModuleClose
extern __typeof (xmlModuleClose) xmlModuleClose__internal_alias __attribute((visibility("hidden")));
#define xmlModuleClose xmlModuleClose__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_MODULES_ENABLED)
#ifdef bottom_xmlmodule
#undef xmlModuleFree
extern __typeof (xmlModuleFree) xmlModuleFree __attribute((alias("xmlModuleFree__internal_alias")));
#else
#ifndef xmlModuleFree
extern __typeof (xmlModuleFree) xmlModuleFree__internal_alias __attribute((visibility("hidden")));
#define xmlModuleFree xmlModuleFree__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_MODULES_ENABLED)
#ifdef bottom_xmlmodule
#undef xmlModuleOpen
extern __typeof (xmlModuleOpen) xmlModuleOpen __attribute((alias("xmlModuleOpen__internal_alias")));
#else
#ifndef xmlModuleOpen
extern __typeof (xmlModuleOpen) xmlModuleOpen__internal_alias __attribute((visibility("hidden")));
#define xmlModuleOpen xmlModuleOpen__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_MODULES_ENABLED)
#ifdef bottom_xmlmodule
#undef xmlModuleSymbol
extern __typeof (xmlModuleSymbol) xmlModuleSymbol __attribute((alias("xmlModuleSymbol__internal_alias")));
#else
#ifndef xmlModuleSymbol
extern __typeof (xmlModuleSymbol) xmlModuleSymbol__internal_alias __attribute((visibility("hidden")));
#define xmlModuleSymbol xmlModuleSymbol__internal_alias
#endif
#endif
#endif

#ifdef bottom_threads
#undef xmlMutexLock
extern __typeof (xmlMutexLock) xmlMutexLock __attribute((alias("xmlMutexLock__internal_alias")));
#else
#ifndef xmlMutexLock
extern __typeof (xmlMutexLock) xmlMutexLock__internal_alias __attribute((visibility("hidden")));
#define xmlMutexLock xmlMutexLock__internal_alias
#endif
#endif

#ifdef bottom_threads
#undef xmlMutexUnlock
extern __typeof (xmlMutexUnlock) xmlMutexUnlock __attribute((alias("xmlMutexUnlock__internal_alias")));
#else
#ifndef xmlMutexUnlock
extern __typeof (xmlMutexUnlock) xmlMutexUnlock__internal_alias __attribute((visibility("hidden")));
#define xmlMutexUnlock xmlMutexUnlock__internal_alias
#endif
#endif

#if defined(LIBXML_LEGACY_ENABLED)
#ifdef bottom_legacy
#undef xmlNamespaceParseNCName
extern __typeof (xmlNamespaceParseNCName) xmlNamespaceParseNCName __attribute((alias("xmlNamespaceParseNCName__internal_alias")));
#else
#ifndef xmlNamespaceParseNCName
extern __typeof (xmlNamespaceParseNCName) xmlNamespaceParseNCName__internal_alias __attribute((visibility("hidden")));
#define xmlNamespaceParseNCName xmlNamespaceParseNCName__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_LEGACY_ENABLED)
#ifdef bottom_legacy
#undef xmlNamespaceParseNSDef
extern __typeof (xmlNamespaceParseNSDef) xmlNamespaceParseNSDef __attribute((alias("xmlNamespaceParseNSDef__internal_alias")));
#else
#ifndef xmlNamespaceParseNSDef
extern __typeof (xmlNamespaceParseNSDef) xmlNamespaceParseNSDef__internal_alias __attribute((visibility("hidden")));
#define xmlNamespaceParseNSDef xmlNamespaceParseNSDef__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_LEGACY_ENABLED)
#ifdef bottom_legacy
#undef xmlNamespaceParseQName
extern __typeof (xmlNamespaceParseQName) xmlNamespaceParseQName __attribute((alias("xmlNamespaceParseQName__internal_alias")));
#else
#ifndef xmlNamespaceParseQName
extern __typeof (xmlNamespaceParseQName) xmlNamespaceParseQName__internal_alias __attribute((visibility("hidden")));
#define xmlNamespaceParseQName xmlNamespaceParseQName__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_FTP_ENABLED)
#ifdef bottom_nanoftp
#undef xmlNanoFTPCheckResponse
extern __typeof (xmlNanoFTPCheckResponse) xmlNanoFTPCheckResponse __attribute((alias("xmlNanoFTPCheckResponse__internal_alias")));
#else
#ifndef xmlNanoFTPCheckResponse
extern __typeof (xmlNanoFTPCheckResponse) xmlNanoFTPCheckResponse__internal_alias __attribute((visibility("hidden")));
#define xmlNanoFTPCheckResponse xmlNanoFTPCheckResponse__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_FTP_ENABLED)
#ifdef bottom_nanoftp
#undef xmlNanoFTPCleanup
extern __typeof (xmlNanoFTPCleanup) xmlNanoFTPCleanup __attribute((alias("xmlNanoFTPCleanup__internal_alias")));
#else
#ifndef xmlNanoFTPCleanup
extern __typeof (xmlNanoFTPCleanup) xmlNanoFTPCleanup__internal_alias __attribute((visibility("hidden")));
#define xmlNanoFTPCleanup xmlNanoFTPCleanup__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_FTP_ENABLED)
#ifdef bottom_nanoftp
#undef xmlNanoFTPClose
extern __typeof (xmlNanoFTPClose) xmlNanoFTPClose __attribute((alias("xmlNanoFTPClose__internal_alias")));
#else
#ifndef xmlNanoFTPClose
extern __typeof (xmlNanoFTPClose) xmlNanoFTPClose__internal_alias __attribute((visibility("hidden")));
#define xmlNanoFTPClose xmlNanoFTPClose__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_FTP_ENABLED)
#ifdef bottom_nanoftp
#undef xmlNanoFTPCloseConnection
extern __typeof (xmlNanoFTPCloseConnection) xmlNanoFTPCloseConnection __attribute((alias("xmlNanoFTPCloseConnection__internal_alias")));
#else
#ifndef xmlNanoFTPCloseConnection
extern __typeof (xmlNanoFTPCloseConnection) xmlNanoFTPCloseConnection__internal_alias __attribute((visibility("hidden")));
#define xmlNanoFTPCloseConnection xmlNanoFTPCloseConnection__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_FTP_ENABLED)
#ifdef bottom_nanoftp
#undef xmlNanoFTPConnect
extern __typeof (xmlNanoFTPConnect) xmlNanoFTPConnect __attribute((alias("xmlNanoFTPConnect__internal_alias")));
#else
#ifndef xmlNanoFTPConnect
extern __typeof (xmlNanoFTPConnect) xmlNanoFTPConnect__internal_alias __attribute((visibility("hidden")));
#define xmlNanoFTPConnect xmlNanoFTPConnect__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_FTP_ENABLED)
#ifdef bottom_nanoftp
#undef xmlNanoFTPConnectTo
extern __typeof (xmlNanoFTPConnectTo) xmlNanoFTPConnectTo __attribute((alias("xmlNanoFTPConnectTo__internal_alias")));
#else
#ifndef xmlNanoFTPConnectTo
extern __typeof (xmlNanoFTPConnectTo) xmlNanoFTPConnectTo__internal_alias __attribute((visibility("hidden")));
#define xmlNanoFTPConnectTo xmlNanoFTPConnectTo__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_FTP_ENABLED)
#ifdef bottom_nanoftp
#undef xmlNanoFTPCwd
extern __typeof (xmlNanoFTPCwd) xmlNanoFTPCwd __attribute((alias("xmlNanoFTPCwd__internal_alias")));
#else
#ifndef xmlNanoFTPCwd
extern __typeof (xmlNanoFTPCwd) xmlNanoFTPCwd__internal_alias __attribute((visibility("hidden")));
#define xmlNanoFTPCwd xmlNanoFTPCwd__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_FTP_ENABLED)
#ifdef bottom_nanoftp
#undef xmlNanoFTPDele
extern __typeof (xmlNanoFTPDele) xmlNanoFTPDele __attribute((alias("xmlNanoFTPDele__internal_alias")));
#else
#ifndef xmlNanoFTPDele
extern __typeof (xmlNanoFTPDele) xmlNanoFTPDele__internal_alias __attribute((visibility("hidden")));
#define xmlNanoFTPDele xmlNanoFTPDele__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_FTP_ENABLED)
#ifdef bottom_nanoftp
#undef xmlNanoFTPFreeCtxt
extern __typeof (xmlNanoFTPFreeCtxt) xmlNanoFTPFreeCtxt __attribute((alias("xmlNanoFTPFreeCtxt__internal_alias")));
#else
#ifndef xmlNanoFTPFreeCtxt
extern __typeof (xmlNanoFTPFreeCtxt) xmlNanoFTPFreeCtxt__internal_alias __attribute((visibility("hidden")));
#define xmlNanoFTPFreeCtxt xmlNanoFTPFreeCtxt__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_FTP_ENABLED)
#ifdef bottom_nanoftp
#undef xmlNanoFTPGet
extern __typeof (xmlNanoFTPGet) xmlNanoFTPGet __attribute((alias("xmlNanoFTPGet__internal_alias")));
#else
#ifndef xmlNanoFTPGet
extern __typeof (xmlNanoFTPGet) xmlNanoFTPGet__internal_alias __attribute((visibility("hidden")));
#define xmlNanoFTPGet xmlNanoFTPGet__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_FTP_ENABLED)
#ifdef bottom_nanoftp
#undef xmlNanoFTPGetConnection
extern __typeof (xmlNanoFTPGetConnection) xmlNanoFTPGetConnection __attribute((alias("xmlNanoFTPGetConnection__internal_alias")));
#else
#ifndef xmlNanoFTPGetConnection
extern __typeof (xmlNanoFTPGetConnection) xmlNanoFTPGetConnection__internal_alias __attribute((visibility("hidden")));
#define xmlNanoFTPGetConnection xmlNanoFTPGetConnection__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_FTP_ENABLED)
#ifdef bottom_nanoftp
#undef xmlNanoFTPGetResponse
extern __typeof (xmlNanoFTPGetResponse) xmlNanoFTPGetResponse __attribute((alias("xmlNanoFTPGetResponse__internal_alias")));
#else
#ifndef xmlNanoFTPGetResponse
extern __typeof (xmlNanoFTPGetResponse) xmlNanoFTPGetResponse__internal_alias __attribute((visibility("hidden")));
#define xmlNanoFTPGetResponse xmlNanoFTPGetResponse__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_FTP_ENABLED)
#ifdef bottom_nanoftp
#undef xmlNanoFTPGetSocket
extern __typeof (xmlNanoFTPGetSocket) xmlNanoFTPGetSocket __attribute((alias("xmlNanoFTPGetSocket__internal_alias")));
#else
#ifndef xmlNanoFTPGetSocket
extern __typeof (xmlNanoFTPGetSocket) xmlNanoFTPGetSocket__internal_alias __attribute((visibility("hidden")));
#define xmlNanoFTPGetSocket xmlNanoFTPGetSocket__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_FTP_ENABLED)
#ifdef bottom_nanoftp
#undef xmlNanoFTPInit
extern __typeof (xmlNanoFTPInit) xmlNanoFTPInit __attribute((alias("xmlNanoFTPInit__internal_alias")));
#else
#ifndef xmlNanoFTPInit
extern __typeof (xmlNanoFTPInit) xmlNanoFTPInit__internal_alias __attribute((visibility("hidden")));
#define xmlNanoFTPInit xmlNanoFTPInit__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_FTP_ENABLED)
#ifdef bottom_nanoftp
#undef xmlNanoFTPList
extern __typeof (xmlNanoFTPList) xmlNanoFTPList __attribute((alias("xmlNanoFTPList__internal_alias")));
#else
#ifndef xmlNanoFTPList
extern __typeof (xmlNanoFTPList) xmlNanoFTPList__internal_alias __attribute((visibility("hidden")));
#define xmlNanoFTPList xmlNanoFTPList__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_FTP_ENABLED)
#ifdef bottom_nanoftp
#undef xmlNanoFTPNewCtxt
extern __typeof (xmlNanoFTPNewCtxt) xmlNanoFTPNewCtxt __attribute((alias("xmlNanoFTPNewCtxt__internal_alias")));
#else
#ifndef xmlNanoFTPNewCtxt
extern __typeof (xmlNanoFTPNewCtxt) xmlNanoFTPNewCtxt__internal_alias __attribute((visibility("hidden")));
#define xmlNanoFTPNewCtxt xmlNanoFTPNewCtxt__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_FTP_ENABLED)
#ifdef bottom_nanoftp
#undef xmlNanoFTPOpen
extern __typeof (xmlNanoFTPOpen) xmlNanoFTPOpen __attribute((alias("xmlNanoFTPOpen__internal_alias")));
#else
#ifndef xmlNanoFTPOpen
extern __typeof (xmlNanoFTPOpen) xmlNanoFTPOpen__internal_alias __attribute((visibility("hidden")));
#define xmlNanoFTPOpen xmlNanoFTPOpen__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_FTP_ENABLED)
#ifdef bottom_nanoftp
#undef xmlNanoFTPProxy
extern __typeof (xmlNanoFTPProxy) xmlNanoFTPProxy __attribute((alias("xmlNanoFTPProxy__internal_alias")));
#else
#ifndef xmlNanoFTPProxy
extern __typeof (xmlNanoFTPProxy) xmlNanoFTPProxy__internal_alias __attribute((visibility("hidden")));
#define xmlNanoFTPProxy xmlNanoFTPProxy__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_FTP_ENABLED)
#ifdef bottom_nanoftp
#undef xmlNanoFTPQuit
extern __typeof (xmlNanoFTPQuit) xmlNanoFTPQuit __attribute((alias("xmlNanoFTPQuit__internal_alias")));
#else
#ifndef xmlNanoFTPQuit
extern __typeof (xmlNanoFTPQuit) xmlNanoFTPQuit__internal_alias __attribute((visibility("hidden")));
#define xmlNanoFTPQuit xmlNanoFTPQuit__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_FTP_ENABLED)
#ifdef bottom_nanoftp
#undef xmlNanoFTPRead
extern __typeof (xmlNanoFTPRead) xmlNanoFTPRead __attribute((alias("xmlNanoFTPRead__internal_alias")));
#else
#ifndef xmlNanoFTPRead
extern __typeof (xmlNanoFTPRead) xmlNanoFTPRead__internal_alias __attribute((visibility("hidden")));
#define xmlNanoFTPRead xmlNanoFTPRead__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_FTP_ENABLED)
#ifdef bottom_nanoftp
#undef xmlNanoFTPScanProxy
extern __typeof (xmlNanoFTPScanProxy) xmlNanoFTPScanProxy __attribute((alias("xmlNanoFTPScanProxy__internal_alias")));
#else
#ifndef xmlNanoFTPScanProxy
extern __typeof (xmlNanoFTPScanProxy) xmlNanoFTPScanProxy__internal_alias __attribute((visibility("hidden")));
#define xmlNanoFTPScanProxy xmlNanoFTPScanProxy__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_FTP_ENABLED)
#ifdef bottom_nanoftp
#undef xmlNanoFTPUpdateURL
extern __typeof (xmlNanoFTPUpdateURL) xmlNanoFTPUpdateURL __attribute((alias("xmlNanoFTPUpdateURL__internal_alias")));
#else
#ifndef xmlNanoFTPUpdateURL
extern __typeof (xmlNanoFTPUpdateURL) xmlNanoFTPUpdateURL__internal_alias __attribute((visibility("hidden")));
#define xmlNanoFTPUpdateURL xmlNanoFTPUpdateURL__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_HTTP_ENABLED)
#ifdef bottom_nanohttp
#undef xmlNanoHTTPAuthHeader
extern __typeof (xmlNanoHTTPAuthHeader) xmlNanoHTTPAuthHeader __attribute((alias("xmlNanoHTTPAuthHeader__internal_alias")));
#else
#ifndef xmlNanoHTTPAuthHeader
extern __typeof (xmlNanoHTTPAuthHeader) xmlNanoHTTPAuthHeader__internal_alias __attribute((visibility("hidden")));
#define xmlNanoHTTPAuthHeader xmlNanoHTTPAuthHeader__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_HTTP_ENABLED)
#ifdef bottom_nanohttp
#undef xmlNanoHTTPCleanup
extern __typeof (xmlNanoHTTPCleanup) xmlNanoHTTPCleanup __attribute((alias("xmlNanoHTTPCleanup__internal_alias")));
#else
#ifndef xmlNanoHTTPCleanup
extern __typeof (xmlNanoHTTPCleanup) xmlNanoHTTPCleanup__internal_alias __attribute((visibility("hidden")));
#define xmlNanoHTTPCleanup xmlNanoHTTPCleanup__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_HTTP_ENABLED)
#ifdef bottom_nanohttp
#undef xmlNanoHTTPClose
extern __typeof (xmlNanoHTTPClose) xmlNanoHTTPClose __attribute((alias("xmlNanoHTTPClose__internal_alias")));
#else
#ifndef xmlNanoHTTPClose
extern __typeof (xmlNanoHTTPClose) xmlNanoHTTPClose__internal_alias __attribute((visibility("hidden")));
#define xmlNanoHTTPClose xmlNanoHTTPClose__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_HTTP_ENABLED)
#ifdef bottom_nanohttp
#undef xmlNanoHTTPContentLength
extern __typeof (xmlNanoHTTPContentLength) xmlNanoHTTPContentLength __attribute((alias("xmlNanoHTTPContentLength__internal_alias")));
#else
#ifndef xmlNanoHTTPContentLength
extern __typeof (xmlNanoHTTPContentLength) xmlNanoHTTPContentLength__internal_alias __attribute((visibility("hidden")));
#define xmlNanoHTTPContentLength xmlNanoHTTPContentLength__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_HTTP_ENABLED)
#ifdef bottom_nanohttp
#undef xmlNanoHTTPEncoding
extern __typeof (xmlNanoHTTPEncoding) xmlNanoHTTPEncoding __attribute((alias("xmlNanoHTTPEncoding__internal_alias")));
#else
#ifndef xmlNanoHTTPEncoding
extern __typeof (xmlNanoHTTPEncoding) xmlNanoHTTPEncoding__internal_alias __attribute((visibility("hidden")));
#define xmlNanoHTTPEncoding xmlNanoHTTPEncoding__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_HTTP_ENABLED)
#ifdef bottom_nanohttp
#undef xmlNanoHTTPFetch
extern __typeof (xmlNanoHTTPFetch) xmlNanoHTTPFetch __attribute((alias("xmlNanoHTTPFetch__internal_alias")));
#else
#ifndef xmlNanoHTTPFetch
extern __typeof (xmlNanoHTTPFetch) xmlNanoHTTPFetch__internal_alias __attribute((visibility("hidden")));
#define xmlNanoHTTPFetch xmlNanoHTTPFetch__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_HTTP_ENABLED)
#ifdef bottom_nanohttp
#undef xmlNanoHTTPInit
extern __typeof (xmlNanoHTTPInit) xmlNanoHTTPInit __attribute((alias("xmlNanoHTTPInit__internal_alias")));
#else
#ifndef xmlNanoHTTPInit
extern __typeof (xmlNanoHTTPInit) xmlNanoHTTPInit__internal_alias __attribute((visibility("hidden")));
#define xmlNanoHTTPInit xmlNanoHTTPInit__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_HTTP_ENABLED)
#ifdef bottom_nanohttp
#undef xmlNanoHTTPMethod
extern __typeof (xmlNanoHTTPMethod) xmlNanoHTTPMethod __attribute((alias("xmlNanoHTTPMethod__internal_alias")));
#else
#ifndef xmlNanoHTTPMethod
extern __typeof (xmlNanoHTTPMethod) xmlNanoHTTPMethod__internal_alias __attribute((visibility("hidden")));
#define xmlNanoHTTPMethod xmlNanoHTTPMethod__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_HTTP_ENABLED)
#ifdef bottom_nanohttp
#undef xmlNanoHTTPMethodRedir
extern __typeof (xmlNanoHTTPMethodRedir) xmlNanoHTTPMethodRedir __attribute((alias("xmlNanoHTTPMethodRedir__internal_alias")));
#else
#ifndef xmlNanoHTTPMethodRedir
extern __typeof (xmlNanoHTTPMethodRedir) xmlNanoHTTPMethodRedir__internal_alias __attribute((visibility("hidden")));
#define xmlNanoHTTPMethodRedir xmlNanoHTTPMethodRedir__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_HTTP_ENABLED)
#ifdef bottom_nanohttp
#undef xmlNanoHTTPMimeType
extern __typeof (xmlNanoHTTPMimeType) xmlNanoHTTPMimeType __attribute((alias("xmlNanoHTTPMimeType__internal_alias")));
#else
#ifndef xmlNanoHTTPMimeType
extern __typeof (xmlNanoHTTPMimeType) xmlNanoHTTPMimeType__internal_alias __attribute((visibility("hidden")));
#define xmlNanoHTTPMimeType xmlNanoHTTPMimeType__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_HTTP_ENABLED)
#ifdef bottom_nanohttp
#undef xmlNanoHTTPOpen
extern __typeof (xmlNanoHTTPOpen) xmlNanoHTTPOpen __attribute((alias("xmlNanoHTTPOpen__internal_alias")));
#else
#ifndef xmlNanoHTTPOpen
extern __typeof (xmlNanoHTTPOpen) xmlNanoHTTPOpen__internal_alias __attribute((visibility("hidden")));
#define xmlNanoHTTPOpen xmlNanoHTTPOpen__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_HTTP_ENABLED)
#ifdef bottom_nanohttp
#undef xmlNanoHTTPOpenRedir
extern __typeof (xmlNanoHTTPOpenRedir) xmlNanoHTTPOpenRedir __attribute((alias("xmlNanoHTTPOpenRedir__internal_alias")));
#else
#ifndef xmlNanoHTTPOpenRedir
extern __typeof (xmlNanoHTTPOpenRedir) xmlNanoHTTPOpenRedir__internal_alias __attribute((visibility("hidden")));
#define xmlNanoHTTPOpenRedir xmlNanoHTTPOpenRedir__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_HTTP_ENABLED)
#ifdef bottom_nanohttp
#undef xmlNanoHTTPRead
extern __typeof (xmlNanoHTTPRead) xmlNanoHTTPRead __attribute((alias("xmlNanoHTTPRead__internal_alias")));
#else
#ifndef xmlNanoHTTPRead
extern __typeof (xmlNanoHTTPRead) xmlNanoHTTPRead__internal_alias __attribute((visibility("hidden")));
#define xmlNanoHTTPRead xmlNanoHTTPRead__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_HTTP_ENABLED)
#ifdef bottom_nanohttp
#undef xmlNanoHTTPRedir
extern __typeof (xmlNanoHTTPRedir) xmlNanoHTTPRedir __attribute((alias("xmlNanoHTTPRedir__internal_alias")));
#else
#ifndef xmlNanoHTTPRedir
extern __typeof (xmlNanoHTTPRedir) xmlNanoHTTPRedir__internal_alias __attribute((visibility("hidden")));
#define xmlNanoHTTPRedir xmlNanoHTTPRedir__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_HTTP_ENABLED)
#ifdef bottom_nanohttp
#undef xmlNanoHTTPReturnCode
extern __typeof (xmlNanoHTTPReturnCode) xmlNanoHTTPReturnCode __attribute((alias("xmlNanoHTTPReturnCode__internal_alias")));
#else
#ifndef xmlNanoHTTPReturnCode
extern __typeof (xmlNanoHTTPReturnCode) xmlNanoHTTPReturnCode__internal_alias __attribute((visibility("hidden")));
#define xmlNanoHTTPReturnCode xmlNanoHTTPReturnCode__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_HTTP_ENABLED) && defined(LIBXML_OUTPUT_ENABLED)
#ifdef bottom_nanohttp
#undef xmlNanoHTTPSave
extern __typeof (xmlNanoHTTPSave) xmlNanoHTTPSave __attribute((alias("xmlNanoHTTPSave__internal_alias")));
#else
#ifndef xmlNanoHTTPSave
extern __typeof (xmlNanoHTTPSave) xmlNanoHTTPSave__internal_alias __attribute((visibility("hidden")));
#define xmlNanoHTTPSave xmlNanoHTTPSave__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_HTTP_ENABLED)
#ifdef bottom_nanohttp
#undef xmlNanoHTTPScanProxy
extern __typeof (xmlNanoHTTPScanProxy) xmlNanoHTTPScanProxy __attribute((alias("xmlNanoHTTPScanProxy__internal_alias")));
#else
#ifndef xmlNanoHTTPScanProxy
extern __typeof (xmlNanoHTTPScanProxy) xmlNanoHTTPScanProxy__internal_alias __attribute((visibility("hidden")));
#define xmlNanoHTTPScanProxy xmlNanoHTTPScanProxy__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_REGEXP_ENABLED) && defined(LIBXML_AUTOMATA_ENABLED)
#ifdef bottom_xmlregexp
#undef xmlNewAutomata
extern __typeof (xmlNewAutomata) xmlNewAutomata __attribute((alias("xmlNewAutomata__internal_alias")));
#else
#ifndef xmlNewAutomata
extern __typeof (xmlNewAutomata) xmlNewAutomata__internal_alias __attribute((visibility("hidden")));
#define xmlNewAutomata xmlNewAutomata__internal_alias
#endif
#endif
#endif

#ifdef bottom_tree
#undef xmlNewCDataBlock
extern __typeof (xmlNewCDataBlock) xmlNewCDataBlock __attribute((alias("xmlNewCDataBlock__internal_alias")));
#else
#ifndef xmlNewCDataBlock
extern __typeof (xmlNewCDataBlock) xmlNewCDataBlock__internal_alias __attribute((visibility("hidden")));
#define xmlNewCDataBlock xmlNewCDataBlock__internal_alias
#endif
#endif

#if defined(LIBXML_CATALOG_ENABLED)
#ifdef bottom_catalog
#undef xmlNewCatalog
extern __typeof (xmlNewCatalog) xmlNewCatalog __attribute((alias("xmlNewCatalog__internal_alias")));
#else
#ifndef xmlNewCatalog
extern __typeof (xmlNewCatalog) xmlNewCatalog__internal_alias __attribute((visibility("hidden")));
#define xmlNewCatalog xmlNewCatalog__internal_alias
#endif
#endif
#endif

#ifdef bottom_encoding
#undef xmlNewCharEncodingHandler
extern __typeof (xmlNewCharEncodingHandler) xmlNewCharEncodingHandler __attribute((alias("xmlNewCharEncodingHandler__internal_alias")));
#else
#ifndef xmlNewCharEncodingHandler
extern __typeof (xmlNewCharEncodingHandler) xmlNewCharEncodingHandler__internal_alias __attribute((visibility("hidden")));
#define xmlNewCharEncodingHandler xmlNewCharEncodingHandler__internal_alias
#endif
#endif

#ifdef bottom_tree
#undef xmlNewCharRef
extern __typeof (xmlNewCharRef) xmlNewCharRef __attribute((alias("xmlNewCharRef__internal_alias")));
#else
#ifndef xmlNewCharRef
extern __typeof (xmlNewCharRef) xmlNewCharRef__internal_alias __attribute((visibility("hidden")));
#define xmlNewCharRef xmlNewCharRef__internal_alias
#endif
#endif

#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)
#ifdef bottom_tree
#undef xmlNewChild
extern __typeof (xmlNewChild) xmlNewChild __attribute((alias("xmlNewChild__internal_alias")));
#else
#ifndef xmlNewChild
extern __typeof (xmlNewChild) xmlNewChild__internal_alias __attribute((visibility("hidden")));
#define xmlNewChild xmlNewChild__internal_alias
#endif
#endif
#endif

#ifdef bottom_tree
#undef xmlNewComment
extern __typeof (xmlNewComment) xmlNewComment __attribute((alias("xmlNewComment__internal_alias")));
#else
#ifndef xmlNewComment
extern __typeof (xmlNewComment) xmlNewComment__internal_alias __attribute((visibility("hidden")));
#define xmlNewComment xmlNewComment__internal_alias
#endif
#endif

#ifdef bottom_tree
#undef xmlNewDoc
extern __typeof (xmlNewDoc) xmlNewDoc __attribute((alias("xmlNewDoc__internal_alias")));
#else
#ifndef xmlNewDoc
extern __typeof (xmlNewDoc) xmlNewDoc__internal_alias __attribute((visibility("hidden")));
#define xmlNewDoc xmlNewDoc__internal_alias
#endif
#endif

#ifdef bottom_tree
#undef xmlNewDocComment
extern __typeof (xmlNewDocComment) xmlNewDocComment __attribute((alias("xmlNewDocComment__internal_alias")));
#else
#ifndef xmlNewDocComment
extern __typeof (xmlNewDocComment) xmlNewDocComment__internal_alias __attribute((visibility("hidden")));
#define xmlNewDocComment xmlNewDocComment__internal_alias
#endif
#endif

#ifdef bottom_valid
#undef xmlNewDocElementContent
extern __typeof (xmlNewDocElementContent) xmlNewDocElementContent __attribute((alias("xmlNewDocElementContent__internal_alias")));
#else
#ifndef xmlNewDocElementContent
extern __typeof (xmlNewDocElementContent) xmlNewDocElementContent__internal_alias __attribute((visibility("hidden")));
#define xmlNewDocElementContent xmlNewDocElementContent__internal_alias
#endif
#endif

#if defined(LIBXML_TREE_ENABLED)
#ifdef bottom_tree
#undef xmlNewDocFragment
extern __typeof (xmlNewDocFragment) xmlNewDocFragment __attribute((alias("xmlNewDocFragment__internal_alias")));
#else
#ifndef xmlNewDocFragment
extern __typeof (xmlNewDocFragment) xmlNewDocFragment__internal_alias __attribute((visibility("hidden")));
#define xmlNewDocFragment xmlNewDocFragment__internal_alias
#endif
#endif
#endif

#ifdef bottom_tree
#undef xmlNewDocNode
extern __typeof (xmlNewDocNode) xmlNewDocNode __attribute((alias("xmlNewDocNode__internal_alias")));
#else
#ifndef xmlNewDocNode
extern __typeof (xmlNewDocNode) xmlNewDocNode__internal_alias __attribute((visibility("hidden")));
#define xmlNewDocNode xmlNewDocNode__internal_alias
#endif
#endif

#ifdef bottom_tree
#undef xmlNewDocNodeEatName
extern __typeof (xmlNewDocNodeEatName) xmlNewDocNodeEatName __attribute((alias("xmlNewDocNodeEatName__internal_alias")));
#else
#ifndef xmlNewDocNodeEatName
extern __typeof (xmlNewDocNodeEatName) xmlNewDocNodeEatName__internal_alias __attribute((visibility("hidden")));
#define xmlNewDocNodeEatName xmlNewDocNodeEatName__internal_alias
#endif
#endif

#ifdef bottom_tree
#undef xmlNewDocPI
extern __typeof (xmlNewDocPI) xmlNewDocPI __attribute((alias("xmlNewDocPI__internal_alias")));
#else
#ifndef xmlNewDocPI
extern __typeof (xmlNewDocPI) xmlNewDocPI__internal_alias __attribute((visibility("hidden")));
#define xmlNewDocPI xmlNewDocPI__internal_alias
#endif
#endif

#ifdef bottom_tree
#undef xmlNewDocProp
extern __typeof (xmlNewDocProp) xmlNewDocProp __attribute((alias("xmlNewDocProp__internal_alias")));
#else
#ifndef xmlNewDocProp
extern __typeof (xmlNewDocProp) xmlNewDocProp__internal_alias __attribute((visibility("hidden")));
#define xmlNewDocProp xmlNewDocProp__internal_alias
#endif
#endif

#if defined(LIBXML_TREE_ENABLED)
#ifdef bottom_tree
#undef xmlNewDocRawNode
extern __typeof (xmlNewDocRawNode) xmlNewDocRawNode __attribute((alias("xmlNewDocRawNode__internal_alias")));
#else
#ifndef xmlNewDocRawNode
extern __typeof (xmlNewDocRawNode) xmlNewDocRawNode__internal_alias __attribute((visibility("hidden")));
#define xmlNewDocRawNode xmlNewDocRawNode__internal_alias
#endif
#endif
#endif

#ifdef bottom_tree
#undef xmlNewDocText
extern __typeof (xmlNewDocText) xmlNewDocText __attribute((alias("xmlNewDocText__internal_alias")));
#else
#ifndef xmlNewDocText
extern __typeof (xmlNewDocText) xmlNewDocText__internal_alias __attribute((visibility("hidden")));
#define xmlNewDocText xmlNewDocText__internal_alias
#endif
#endif

#ifdef bottom_tree
#undef xmlNewDocTextLen
extern __typeof (xmlNewDocTextLen) xmlNewDocTextLen __attribute((alias("xmlNewDocTextLen__internal_alias")));
#else
#ifndef xmlNewDocTextLen
extern __typeof (xmlNewDocTextLen) xmlNewDocTextLen__internal_alias __attribute((visibility("hidden")));
#define xmlNewDocTextLen xmlNewDocTextLen__internal_alias
#endif
#endif

#ifdef bottom_tree
#undef xmlNewDtd
extern __typeof (xmlNewDtd) xmlNewDtd __attribute((alias("xmlNewDtd__internal_alias")));
#else
#ifndef xmlNewDtd
extern __typeof (xmlNewDtd) xmlNewDtd__internal_alias __attribute((visibility("hidden")));
#define xmlNewDtd xmlNewDtd__internal_alias
#endif
#endif

#ifdef bottom_valid
#undef xmlNewElementContent
extern __typeof (xmlNewElementContent) xmlNewElementContent __attribute((alias("xmlNewElementContent__internal_alias")));
#else
#ifndef xmlNewElementContent
extern __typeof (xmlNewElementContent) xmlNewElementContent__internal_alias __attribute((visibility("hidden")));
#define xmlNewElementContent xmlNewElementContent__internal_alias
#endif
#endif

#ifdef bottom_parserInternals
#undef xmlNewEntityInputStream
extern __typeof (xmlNewEntityInputStream) xmlNewEntityInputStream __attribute((alias("xmlNewEntityInputStream__internal_alias")));
#else
#ifndef xmlNewEntityInputStream
extern __typeof (xmlNewEntityInputStream) xmlNewEntityInputStream__internal_alias __attribute((visibility("hidden")));
#define xmlNewEntityInputStream xmlNewEntityInputStream__internal_alias
#endif
#endif

#if defined(LIBXML_LEGACY_ENABLED)
#ifdef bottom_legacy
#undef xmlNewGlobalNs
extern __typeof (xmlNewGlobalNs) xmlNewGlobalNs __attribute((alias("xmlNewGlobalNs__internal_alias")));
#else
#ifndef xmlNewGlobalNs
extern __typeof (xmlNewGlobalNs) xmlNewGlobalNs__internal_alias __attribute((visibility("hidden")));
#define xmlNewGlobalNs xmlNewGlobalNs__internal_alias
#endif
#endif
#endif

#ifdef bottom_parserInternals
#undef xmlNewIOInputStream
extern __typeof (xmlNewIOInputStream) xmlNewIOInputStream __attribute((alias("xmlNewIOInputStream__internal_alias")));
#else
#ifndef xmlNewIOInputStream
extern __typeof (xmlNewIOInputStream) xmlNewIOInputStream__internal_alias __attribute((visibility("hidden")));
#define xmlNewIOInputStream xmlNewIOInputStream__internal_alias
#endif
#endif

#ifdef bottom_parserInternals
#undef xmlNewInputFromFile
extern __typeof (xmlNewInputFromFile) xmlNewInputFromFile __attribute((alias("xmlNewInputFromFile__internal_alias")));
#else
#ifndef xmlNewInputFromFile
extern __typeof (xmlNewInputFromFile) xmlNewInputFromFile__internal_alias __attribute((visibility("hidden")));
#define xmlNewInputFromFile xmlNewInputFromFile__internal_alias
#endif
#endif

#ifdef bottom_parserInternals
#undef xmlNewInputStream
extern __typeof (xmlNewInputStream) xmlNewInputStream __attribute((alias("xmlNewInputStream__internal_alias")));
#else
#ifndef xmlNewInputStream
extern __typeof (xmlNewInputStream) xmlNewInputStream__internal_alias __attribute((visibility("hidden")));
#define xmlNewInputStream xmlNewInputStream__internal_alias
#endif
#endif

#ifdef bottom_threads
#undef xmlNewMutex
extern __typeof (xmlNewMutex) xmlNewMutex __attribute((alias("xmlNewMutex__internal_alias")));
#else
#ifndef xmlNewMutex
extern __typeof (xmlNewMutex) xmlNewMutex__internal_alias __attribute((visibility("hidden")));
#define xmlNewMutex xmlNewMutex__internal_alias
#endif
#endif

#ifdef bottom_tree
#undef xmlNewNode
extern __typeof (xmlNewNode) xmlNewNode __attribute((alias("xmlNewNode__internal_alias")));
#else
#ifndef xmlNewNode
extern __typeof (xmlNewNode) xmlNewNode__internal_alias __attribute((visibility("hidden")));
#define xmlNewNode xmlNewNode__internal_alias
#endif
#endif

#ifdef bottom_tree
#undef xmlNewNodeEatName
extern __typeof (xmlNewNodeEatName) xmlNewNodeEatName __attribute((alias("xmlNewNodeEatName__internal_alias")));
#else
#ifndef xmlNewNodeEatName
extern __typeof (xmlNewNodeEatName) xmlNewNodeEatName__internal_alias __attribute((visibility("hidden")));
#define xmlNewNodeEatName xmlNewNodeEatName__internal_alias
#endif
#endif

#ifdef bottom_tree
#undef xmlNewNs
extern __typeof (xmlNewNs) xmlNewNs __attribute((alias("xmlNewNs__internal_alias")));
#else
#ifndef xmlNewNs
extern __typeof (xmlNewNs) xmlNewNs__internal_alias __attribute((visibility("hidden")));
#define xmlNewNs xmlNewNs__internal_alias
#endif
#endif

#ifdef bottom_tree
#undef xmlNewNsProp
extern __typeof (xmlNewNsProp) xmlNewNsProp __attribute((alias("xmlNewNsProp__internal_alias")));
#else
#ifndef xmlNewNsProp
extern __typeof (xmlNewNsProp) xmlNewNsProp__internal_alias __attribute((visibility("hidden")));
#define xmlNewNsProp xmlNewNsProp__internal_alias
#endif
#endif

#ifdef bottom_tree
#undef xmlNewNsPropEatName
extern __typeof (xmlNewNsPropEatName) xmlNewNsPropEatName __attribute((alias("xmlNewNsPropEatName__internal_alias")));
#else
#ifndef xmlNewNsPropEatName
extern __typeof (xmlNewNsPropEatName) xmlNewNsPropEatName__internal_alias __attribute((visibility("hidden")));
#define xmlNewNsPropEatName xmlNewNsPropEatName__internal_alias
#endif
#endif

#ifdef bottom_tree
#undef xmlNewPI
extern __typeof (xmlNewPI) xmlNewPI __attribute((alias("xmlNewPI__internal_alias")));
#else
#ifndef xmlNewPI
extern __typeof (xmlNewPI) xmlNewPI__internal_alias __attribute((visibility("hidden")));
#define xmlNewPI xmlNewPI__internal_alias
#endif
#endif

#ifdef bottom_parserInternals
#undef xmlNewParserCtxt
extern __typeof (xmlNewParserCtxt) xmlNewParserCtxt __attribute((alias("xmlNewParserCtxt__internal_alias")));
#else
#ifndef xmlNewParserCtxt
extern __typeof (xmlNewParserCtxt) xmlNewParserCtxt__internal_alias __attribute((visibility("hidden")));
#define xmlNewParserCtxt xmlNewParserCtxt__internal_alias
#endif
#endif

#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_HTML_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)
#ifdef bottom_tree
#undef xmlNewProp
extern __typeof (xmlNewProp) xmlNewProp __attribute((alias("xmlNewProp__internal_alias")));
#else
#ifndef xmlNewProp
extern __typeof (xmlNewProp) xmlNewProp__internal_alias __attribute((visibility("hidden")));
#define xmlNewProp xmlNewProp__internal_alias
#endif
#endif
#endif

#ifdef bottom_threads
#undef xmlNewRMutex
extern __typeof (xmlNewRMutex) xmlNewRMutex __attribute((alias("xmlNewRMutex__internal_alias")));
#else
#ifndef xmlNewRMutex
extern __typeof (xmlNewRMutex) xmlNewRMutex__internal_alias __attribute((visibility("hidden")));
#define xmlNewRMutex xmlNewRMutex__internal_alias
#endif
#endif

#ifdef bottom_tree
#undef xmlNewReference
extern __typeof (xmlNewReference) xmlNewReference __attribute((alias("xmlNewReference__internal_alias")));
#else
#ifndef xmlNewReference
extern __typeof (xmlNewReference) xmlNewReference__internal_alias __attribute((visibility("hidden")));
#define xmlNewReference xmlNewReference__internal_alias
#endif
#endif

#ifdef bottom_parserInternals
#undef xmlNewStringInputStream
extern __typeof (xmlNewStringInputStream) xmlNewStringInputStream __attribute((alias("xmlNewStringInputStream__internal_alias")));
#else
#ifndef xmlNewStringInputStream
extern __typeof (xmlNewStringInputStream) xmlNewStringInputStream__internal_alias __attribute((visibility("hidden")));
#define xmlNewStringInputStream xmlNewStringInputStream__internal_alias
#endif
#endif

#ifdef bottom_tree
#undef xmlNewText
extern __typeof (xmlNewText) xmlNewText __attribute((alias("xmlNewText__internal_alias")));
#else
#ifndef xmlNewText
extern __typeof (xmlNewText) xmlNewText__internal_alias __attribute((visibility("hidden")));
#define xmlNewText xmlNewText__internal_alias
#endif
#endif

#if defined(LIBXML_TREE_ENABLED)
#ifdef bottom_tree
#undef xmlNewTextChild
extern __typeof (xmlNewTextChild) xmlNewTextChild __attribute((alias("xmlNewTextChild__internal_alias")));
#else
#ifndef xmlNewTextChild
extern __typeof (xmlNewTextChild) xmlNewTextChild__internal_alias __attribute((visibility("hidden")));
#define xmlNewTextChild xmlNewTextChild__internal_alias
#endif
#endif
#endif

#ifdef bottom_tree
#undef xmlNewTextLen
extern __typeof (xmlNewTextLen) xmlNewTextLen __attribute((alias("xmlNewTextLen__internal_alias")));
#else
#ifndef xmlNewTextLen
extern __typeof (xmlNewTextLen) xmlNewTextLen__internal_alias __attribute((visibility("hidden")));
#define xmlNewTextLen xmlNewTextLen__internal_alias
#endif
#endif

#if defined(LIBXML_READER_ENABLED)
#ifdef bottom_xmlreader
#undef xmlNewTextReader
extern __typeof (xmlNewTextReader) xmlNewTextReader __attribute((alias("xmlNewTextReader__internal_alias")));
#else
#ifndef xmlNewTextReader
extern __typeof (xmlNewTextReader) xmlNewTextReader__internal_alias __attribute((visibility("hidden")));
#define xmlNewTextReader xmlNewTextReader__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_READER_ENABLED)
#ifdef bottom_xmlreader
#undef xmlNewTextReaderFilename
extern __typeof (xmlNewTextReaderFilename) xmlNewTextReaderFilename __attribute((alias("xmlNewTextReaderFilename__internal_alias")));
#else
#ifndef xmlNewTextReaderFilename
extern __typeof (xmlNewTextReaderFilename) xmlNewTextReaderFilename__internal_alias __attribute((visibility("hidden")));
#define xmlNewTextReaderFilename xmlNewTextReaderFilename__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_WRITER_ENABLED)
#ifdef bottom_xmlwriter
#undef xmlNewTextWriter
extern __typeof (xmlNewTextWriter) xmlNewTextWriter __attribute((alias("xmlNewTextWriter__internal_alias")));
#else
#ifndef xmlNewTextWriter
extern __typeof (xmlNewTextWriter) xmlNewTextWriter__internal_alias __attribute((visibility("hidden")));
#define xmlNewTextWriter xmlNewTextWriter__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_WRITER_ENABLED)
#ifdef bottom_xmlwriter
#undef xmlNewTextWriterDoc
extern __typeof (xmlNewTextWriterDoc) xmlNewTextWriterDoc __attribute((alias("xmlNewTextWriterDoc__internal_alias")));
#else
#ifndef xmlNewTextWriterDoc
extern __typeof (xmlNewTextWriterDoc) xmlNewTextWriterDoc__internal_alias __attribute((visibility("hidden")));
#define xmlNewTextWriterDoc xmlNewTextWriterDoc__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_WRITER_ENABLED)
#ifdef bottom_xmlwriter
#undef xmlNewTextWriterFilename
extern __typeof (xmlNewTextWriterFilename) xmlNewTextWriterFilename __attribute((alias("xmlNewTextWriterFilename__internal_alias")));
#else
#ifndef xmlNewTextWriterFilename
extern __typeof (xmlNewTextWriterFilename) xmlNewTextWriterFilename__internal_alias __attribute((visibility("hidden")));
#define xmlNewTextWriterFilename xmlNewTextWriterFilename__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_WRITER_ENABLED)
#ifdef bottom_xmlwriter
#undef xmlNewTextWriterMemory
extern __typeof (xmlNewTextWriterMemory) xmlNewTextWriterMemory __attribute((alias("xmlNewTextWriterMemory__internal_alias")));
#else
#ifndef xmlNewTextWriterMemory
extern __typeof (xmlNewTextWriterMemory) xmlNewTextWriterMemory__internal_alias __attribute((visibility("hidden")));
#define xmlNewTextWriterMemory xmlNewTextWriterMemory__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_WRITER_ENABLED)
#ifdef bottom_xmlwriter
#undef xmlNewTextWriterPushParser
extern __typeof (xmlNewTextWriterPushParser) xmlNewTextWriterPushParser __attribute((alias("xmlNewTextWriterPushParser__internal_alias")));
#else
#ifndef xmlNewTextWriterPushParser
extern __typeof (xmlNewTextWriterPushParser) xmlNewTextWriterPushParser__internal_alias __attribute((visibility("hidden")));
#define xmlNewTextWriterPushParser xmlNewTextWriterPushParser__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_WRITER_ENABLED)
#ifdef bottom_xmlwriter
#undef xmlNewTextWriterTree
extern __typeof (xmlNewTextWriterTree) xmlNewTextWriterTree __attribute((alias("xmlNewTextWriterTree__internal_alias")));
#else
#ifndef xmlNewTextWriterTree
extern __typeof (xmlNewTextWriterTree) xmlNewTextWriterTree__internal_alias __attribute((visibility("hidden")));
#define xmlNewTextWriterTree xmlNewTextWriterTree__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_VALID_ENABLED)
#ifdef bottom_valid
#undef xmlNewValidCtxt
extern __typeof (xmlNewValidCtxt) xmlNewValidCtxt __attribute((alias("xmlNewValidCtxt__internal_alias")));
#else
#ifndef xmlNewValidCtxt
extern __typeof (xmlNewValidCtxt) xmlNewValidCtxt__internal_alias __attribute((visibility("hidden")));
#define xmlNewValidCtxt xmlNewValidCtxt__internal_alias
#endif
#endif
#endif

#ifdef bottom_parserInternals
#undef xmlNextChar
extern __typeof (xmlNextChar) xmlNextChar __attribute((alias("xmlNextChar__internal_alias")));
#else
#ifndef xmlNextChar
extern __typeof (xmlNextChar) xmlNextChar__internal_alias __attribute((visibility("hidden")));
#define xmlNextChar xmlNextChar__internal_alias
#endif
#endif

#ifdef bottom_xmlIO
#undef xmlNoNetExternalEntityLoader
extern __typeof (xmlNoNetExternalEntityLoader) xmlNoNetExternalEntityLoader __attribute((alias("xmlNoNetExternalEntityLoader__internal_alias")));
#else
#ifndef xmlNoNetExternalEntityLoader
extern __typeof (xmlNoNetExternalEntityLoader) xmlNoNetExternalEntityLoader__internal_alias __attribute((visibility("hidden")));
#define xmlNoNetExternalEntityLoader xmlNoNetExternalEntityLoader__internal_alias
#endif
#endif

#ifdef bottom_tree
#undef xmlNodeAddContent
extern __typeof (xmlNodeAddContent) xmlNodeAddContent __attribute((alias("xmlNodeAddContent__internal_alias")));
#else
#ifndef xmlNodeAddContent
extern __typeof (xmlNodeAddContent) xmlNodeAddContent__internal_alias __attribute((visibility("hidden")));
#define xmlNodeAddContent xmlNodeAddContent__internal_alias
#endif
#endif

#ifdef bottom_tree
#undef xmlNodeAddContentLen
extern __typeof (xmlNodeAddContentLen) xmlNodeAddContentLen __attribute((alias("xmlNodeAddContentLen__internal_alias")));
#else
#ifndef xmlNodeAddContentLen
extern __typeof (xmlNodeAddContentLen) xmlNodeAddContentLen__internal_alias __attribute((visibility("hidden")));
#define xmlNodeAddContentLen xmlNodeAddContentLen__internal_alias
#endif
#endif

#ifdef bottom_tree
#undef xmlNodeBufGetContent
extern __typeof (xmlNodeBufGetContent) xmlNodeBufGetContent __attribute((alias("xmlNodeBufGetContent__internal_alias")));
#else
#ifndef xmlNodeBufGetContent
extern __typeof (xmlNodeBufGetContent) xmlNodeBufGetContent__internal_alias __attribute((visibility("hidden")));
#define xmlNodeBufGetContent xmlNodeBufGetContent__internal_alias
#endif
#endif

#if defined(LIBXML_OUTPUT_ENABLED)
#ifdef bottom_xmlsave
#undef xmlNodeDump
extern __typeof (xmlNodeDump) xmlNodeDump __attribute((alias("xmlNodeDump__internal_alias")));
#else
#ifndef xmlNodeDump
extern __typeof (xmlNodeDump) xmlNodeDump__internal_alias __attribute((visibility("hidden")));
#define xmlNodeDump xmlNodeDump__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_OUTPUT_ENABLED)
#ifdef bottom_xmlsave
#undef xmlNodeDumpOutput
extern __typeof (xmlNodeDumpOutput) xmlNodeDumpOutput __attribute((alias("xmlNodeDumpOutput__internal_alias")));
#else
#ifndef xmlNodeDumpOutput
extern __typeof (xmlNodeDumpOutput) xmlNodeDumpOutput__internal_alias __attribute((visibility("hidden")));
#define xmlNodeDumpOutput xmlNodeDumpOutput__internal_alias
#endif
#endif
#endif

#ifdef bottom_tree
#undef xmlNodeGetBase
extern __typeof (xmlNodeGetBase) xmlNodeGetBase __attribute((alias("xmlNodeGetBase__internal_alias")));
#else
#ifndef xmlNodeGetBase
extern __typeof (xmlNodeGetBase) xmlNodeGetBase__internal_alias __attribute((visibility("hidden")));
#define xmlNodeGetBase xmlNodeGetBase__internal_alias
#endif
#endif

#ifdef bottom_tree
#undef xmlNodeGetContent
extern __typeof (xmlNodeGetContent) xmlNodeGetContent __attribute((alias("xmlNodeGetContent__internal_alias")));
#else
#ifndef xmlNodeGetContent
extern __typeof (xmlNodeGetContent) xmlNodeGetContent__internal_alias __attribute((visibility("hidden")));
#define xmlNodeGetContent xmlNodeGetContent__internal_alias
#endif
#endif

#ifdef bottom_tree
#undef xmlNodeGetLang
extern __typeof (xmlNodeGetLang) xmlNodeGetLang __attribute((alias("xmlNodeGetLang__internal_alias")));
#else
#ifndef xmlNodeGetLang
extern __typeof (xmlNodeGetLang) xmlNodeGetLang__internal_alias __attribute((visibility("hidden")));
#define xmlNodeGetLang xmlNodeGetLang__internal_alias
#endif
#endif

#ifdef bottom_tree
#undef xmlNodeGetSpacePreserve
extern __typeof (xmlNodeGetSpacePreserve) xmlNodeGetSpacePreserve __attribute((alias("xmlNodeGetSpacePreserve__internal_alias")));
#else
#ifndef xmlNodeGetSpacePreserve
extern __typeof (xmlNodeGetSpacePreserve) xmlNodeGetSpacePreserve__internal_alias __attribute((visibility("hidden")));
#define xmlNodeGetSpacePreserve xmlNodeGetSpacePreserve__internal_alias
#endif
#endif

#ifdef bottom_tree
#undef xmlNodeIsText
extern __typeof (xmlNodeIsText) xmlNodeIsText __attribute((alias("xmlNodeIsText__internal_alias")));
#else
#ifndef xmlNodeIsText
extern __typeof (xmlNodeIsText) xmlNodeIsText__internal_alias __attribute((visibility("hidden")));
#define xmlNodeIsText xmlNodeIsText__internal_alias
#endif
#endif

#if defined(LIBXML_TREE_ENABLED)
#ifdef bottom_tree
#undef xmlNodeListGetRawString
extern __typeof (xmlNodeListGetRawString) xmlNodeListGetRawString __attribute((alias("xmlNodeListGetRawString__internal_alias")));
#else
#ifndef xmlNodeListGetRawString
extern __typeof (xmlNodeListGetRawString) xmlNodeListGetRawString__internal_alias __attribute((visibility("hidden")));
#define xmlNodeListGetRawString xmlNodeListGetRawString__internal_alias
#endif
#endif
#endif

#ifdef bottom_tree
#undef xmlNodeListGetString
extern __typeof (xmlNodeListGetString) xmlNodeListGetString __attribute((alias("xmlNodeListGetString__internal_alias")));
#else
#ifndef xmlNodeListGetString
extern __typeof (xmlNodeListGetString) xmlNodeListGetString__internal_alias __attribute((visibility("hidden")));
#define xmlNodeListGetString xmlNodeListGetString__internal_alias
#endif
#endif

#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XINCLUDE_ENABLED)
#ifdef bottom_tree
#undef xmlNodeSetBase
extern __typeof (xmlNodeSetBase) xmlNodeSetBase __attribute((alias("xmlNodeSetBase__internal_alias")));
#else
#ifndef xmlNodeSetBase
extern __typeof (xmlNodeSetBase) xmlNodeSetBase__internal_alias __attribute((visibility("hidden")));
#define xmlNodeSetBase xmlNodeSetBase__internal_alias
#endif
#endif
#endif

#ifdef bottom_tree
#undef xmlNodeSetContent
extern __typeof (xmlNodeSetContent) xmlNodeSetContent __attribute((alias("xmlNodeSetContent__internal_alias")));
#else
#ifndef xmlNodeSetContent
extern __typeof (xmlNodeSetContent) xmlNodeSetContent__internal_alias __attribute((visibility("hidden")));
#define xmlNodeSetContent xmlNodeSetContent__internal_alias
#endif
#endif

#if defined(LIBXML_TREE_ENABLED)
#ifdef bottom_tree
#undef xmlNodeSetContentLen
extern __typeof (xmlNodeSetContentLen) xmlNodeSetContentLen __attribute((alias("xmlNodeSetContentLen__internal_alias")));
#else
#ifndef xmlNodeSetContentLen
extern __typeof (xmlNodeSetContentLen) xmlNodeSetContentLen__internal_alias __attribute((visibility("hidden")));
#define xmlNodeSetContentLen xmlNodeSetContentLen__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_TREE_ENABLED)
#ifdef bottom_tree
#undef xmlNodeSetLang
extern __typeof (xmlNodeSetLang) xmlNodeSetLang __attribute((alias("xmlNodeSetLang__internal_alias")));
#else
#ifndef xmlNodeSetLang
extern __typeof (xmlNodeSetLang) xmlNodeSetLang__internal_alias __attribute((visibility("hidden")));
#define xmlNodeSetLang xmlNodeSetLang__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_TREE_ENABLED)
#ifdef bottom_tree
#undef xmlNodeSetName
extern __typeof (xmlNodeSetName) xmlNodeSetName __attribute((alias("xmlNodeSetName__internal_alias")));
#else
#ifndef xmlNodeSetName
extern __typeof (xmlNodeSetName) xmlNodeSetName__internal_alias __attribute((visibility("hidden")));
#define xmlNodeSetName xmlNodeSetName__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_TREE_ENABLED)
#ifdef bottom_tree
#undef xmlNodeSetSpacePreserve
extern __typeof (xmlNodeSetSpacePreserve) xmlNodeSetSpacePreserve __attribute((alias("xmlNodeSetSpacePreserve__internal_alias")));
#else
#ifndef xmlNodeSetSpacePreserve
extern __typeof (xmlNodeSetSpacePreserve) xmlNodeSetSpacePreserve__internal_alias __attribute((visibility("hidden")));
#define xmlNodeSetSpacePreserve xmlNodeSetSpacePreserve__internal_alias
#endif
#endif
#endif

#ifdef bottom_uri
#undef xmlNormalizeURIPath
extern __typeof (xmlNormalizeURIPath) xmlNormalizeURIPath __attribute((alias("xmlNormalizeURIPath__internal_alias")));
#else
#ifndef xmlNormalizeURIPath
extern __typeof (xmlNormalizeURIPath) xmlNormalizeURIPath__internal_alias __attribute((visibility("hidden")));
#define xmlNormalizeURIPath xmlNormalizeURIPath__internal_alias
#endif
#endif

#ifdef bottom_xmlIO
#undef xmlNormalizeWindowsPath
extern __typeof (xmlNormalizeWindowsPath) xmlNormalizeWindowsPath __attribute((alias("xmlNormalizeWindowsPath__internal_alias")));
#else
#ifndef xmlNormalizeWindowsPath
extern __typeof (xmlNormalizeWindowsPath) xmlNormalizeWindowsPath__internal_alias __attribute((visibility("hidden")));
#define xmlNormalizeWindowsPath xmlNormalizeWindowsPath__internal_alias
#endif
#endif

#if defined(LIBXML_OUTPUT_ENABLED)
#ifdef bottom_xmlIO
#undef xmlOutputBufferClose
extern __typeof (xmlOutputBufferClose) xmlOutputBufferClose __attribute((alias("xmlOutputBufferClose__internal_alias")));
#else
#ifndef xmlOutputBufferClose
extern __typeof (xmlOutputBufferClose) xmlOutputBufferClose__internal_alias __attribute((visibility("hidden")));
#define xmlOutputBufferClose xmlOutputBufferClose__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_OUTPUT_ENABLED)
#ifdef bottom_xmlIO
#undef xmlOutputBufferCreateFd
extern __typeof (xmlOutputBufferCreateFd) xmlOutputBufferCreateFd __attribute((alias("xmlOutputBufferCreateFd__internal_alias")));
#else
#ifndef xmlOutputBufferCreateFd
extern __typeof (xmlOutputBufferCreateFd) xmlOutputBufferCreateFd__internal_alias __attribute((visibility("hidden")));
#define xmlOutputBufferCreateFd xmlOutputBufferCreateFd__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_OUTPUT_ENABLED)
#ifdef bottom_xmlIO
#undef xmlOutputBufferCreateFile
extern __typeof (xmlOutputBufferCreateFile) xmlOutputBufferCreateFile __attribute((alias("xmlOutputBufferCreateFile__internal_alias")));
#else
#ifndef xmlOutputBufferCreateFile
extern __typeof (xmlOutputBufferCreateFile) xmlOutputBufferCreateFile__internal_alias __attribute((visibility("hidden")));
#define xmlOutputBufferCreateFile xmlOutputBufferCreateFile__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_OUTPUT_ENABLED)
#ifdef bottom_xmlIO
#undef xmlOutputBufferCreateFilename
extern __typeof (xmlOutputBufferCreateFilename) xmlOutputBufferCreateFilename __attribute((alias("xmlOutputBufferCreateFilename__internal_alias")));
#else
#ifndef xmlOutputBufferCreateFilename
extern __typeof (xmlOutputBufferCreateFilename) xmlOutputBufferCreateFilename__internal_alias __attribute((visibility("hidden")));
#define xmlOutputBufferCreateFilename xmlOutputBufferCreateFilename__internal_alias
#endif
#endif
#endif

#ifdef bottom_xmlIO
#undef xmlOutputBufferCreateFilenameDefault
extern __typeof (xmlOutputBufferCreateFilenameDefault) xmlOutputBufferCreateFilenameDefault __attribute((alias("xmlOutputBufferCreateFilenameDefault__internal_alias")));
#else
#ifndef xmlOutputBufferCreateFilenameDefault
extern __typeof (xmlOutputBufferCreateFilenameDefault) xmlOutputBufferCreateFilenameDefault__internal_alias __attribute((visibility("hidden")));
#define xmlOutputBufferCreateFilenameDefault xmlOutputBufferCreateFilenameDefault__internal_alias
#endif
#endif

#if defined(LIBXML_OUTPUT_ENABLED)
#ifdef bottom_xmlIO
#undef xmlOutputBufferCreateIO
extern __typeof (xmlOutputBufferCreateIO) xmlOutputBufferCreateIO __attribute((alias("xmlOutputBufferCreateIO__internal_alias")));
#else
#ifndef xmlOutputBufferCreateIO
extern __typeof (xmlOutputBufferCreateIO) xmlOutputBufferCreateIO__internal_alias __attribute((visibility("hidden")));
#define xmlOutputBufferCreateIO xmlOutputBufferCreateIO__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_OUTPUT_ENABLED)
#ifdef bottom_xmlIO
#undef xmlOutputBufferFlush
extern __typeof (xmlOutputBufferFlush) xmlOutputBufferFlush __attribute((alias("xmlOutputBufferFlush__internal_alias")));
#else
#ifndef xmlOutputBufferFlush
extern __typeof (xmlOutputBufferFlush) xmlOutputBufferFlush__internal_alias __attribute((visibility("hidden")));
#define xmlOutputBufferFlush xmlOutputBufferFlush__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_OUTPUT_ENABLED)
#ifdef bottom_xmlIO
#undef xmlOutputBufferWrite
extern __typeof (xmlOutputBufferWrite) xmlOutputBufferWrite __attribute((alias("xmlOutputBufferWrite__internal_alias")));
#else
#ifndef xmlOutputBufferWrite
extern __typeof (xmlOutputBufferWrite) xmlOutputBufferWrite__internal_alias __attribute((visibility("hidden")));
#define xmlOutputBufferWrite xmlOutputBufferWrite__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_OUTPUT_ENABLED)
#ifdef bottom_xmlIO
#undef xmlOutputBufferWriteEscape
extern __typeof (xmlOutputBufferWriteEscape) xmlOutputBufferWriteEscape __attribute((alias("xmlOutputBufferWriteEscape__internal_alias")));
#else
#ifndef xmlOutputBufferWriteEscape
extern __typeof (xmlOutputBufferWriteEscape) xmlOutputBufferWriteEscape__internal_alias __attribute((visibility("hidden")));
#define xmlOutputBufferWriteEscape xmlOutputBufferWriteEscape__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_OUTPUT_ENABLED)
#ifdef bottom_xmlIO
#undef xmlOutputBufferWriteString
extern __typeof (xmlOutputBufferWriteString) xmlOutputBufferWriteString __attribute((alias("xmlOutputBufferWriteString__internal_alias")));
#else
#ifndef xmlOutputBufferWriteString
extern __typeof (xmlOutputBufferWriteString) xmlOutputBufferWriteString__internal_alias __attribute((visibility("hidden")));
#define xmlOutputBufferWriteString xmlOutputBufferWriteString__internal_alias
#endif
#endif
#endif

#ifdef bottom_parser
#undef xmlParseAttValue
extern __typeof (xmlParseAttValue) xmlParseAttValue __attribute((alias("xmlParseAttValue__internal_alias")));
#else
#ifndef xmlParseAttValue
extern __typeof (xmlParseAttValue) xmlParseAttValue__internal_alias __attribute((visibility("hidden")));
#define xmlParseAttValue xmlParseAttValue__internal_alias
#endif
#endif

#if defined(LIBXML_SAX1_ENABLED)
#ifdef bottom_parser
#undef xmlParseAttribute
extern __typeof (xmlParseAttribute) xmlParseAttribute __attribute((alias("xmlParseAttribute__internal_alias")));
#else
#ifndef xmlParseAttribute
extern __typeof (xmlParseAttribute) xmlParseAttribute__internal_alias __attribute((visibility("hidden")));
#define xmlParseAttribute xmlParseAttribute__internal_alias
#endif
#endif
#endif

#ifdef bottom_parser
#undef xmlParseAttributeListDecl
extern __typeof (xmlParseAttributeListDecl) xmlParseAttributeListDecl __attribute((alias("xmlParseAttributeListDecl__internal_alias")));
#else
#ifndef xmlParseAttributeListDecl
extern __typeof (xmlParseAttributeListDecl) xmlParseAttributeListDecl__internal_alias __attribute((visibility("hidden")));
#define xmlParseAttributeListDecl xmlParseAttributeListDecl__internal_alias
#endif
#endif

#ifdef bottom_parser
#undef xmlParseAttributeType
extern __typeof (xmlParseAttributeType) xmlParseAttributeType __attribute((alias("xmlParseAttributeType__internal_alias")));
#else
#ifndef xmlParseAttributeType
extern __typeof (xmlParseAttributeType) xmlParseAttributeType__internal_alias __attribute((visibility("hidden")));
#define xmlParseAttributeType xmlParseAttributeType__internal_alias
#endif
#endif

#if defined(LIBXML_SAX1_ENABLED)
#ifdef bottom_parser
#undef xmlParseBalancedChunkMemory
extern __typeof (xmlParseBalancedChunkMemory) xmlParseBalancedChunkMemory __attribute((alias("xmlParseBalancedChunkMemory__internal_alias")));
#else
#ifndef xmlParseBalancedChunkMemory
extern __typeof (xmlParseBalancedChunkMemory) xmlParseBalancedChunkMemory__internal_alias __attribute((visibility("hidden")));
#define xmlParseBalancedChunkMemory xmlParseBalancedChunkMemory__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_SAX1_ENABLED)
#ifdef bottom_parser
#undef xmlParseBalancedChunkMemoryRecover
extern __typeof (xmlParseBalancedChunkMemoryRecover) xmlParseBalancedChunkMemoryRecover __attribute((alias("xmlParseBalancedChunkMemoryRecover__internal_alias")));
#else
#ifndef xmlParseBalancedChunkMemoryRecover
extern __typeof (xmlParseBalancedChunkMemoryRecover) xmlParseBalancedChunkMemoryRecover__internal_alias __attribute((visibility("hidden")));
#define xmlParseBalancedChunkMemoryRecover xmlParseBalancedChunkMemoryRecover__internal_alias
#endif
#endif
#endif

#ifdef bottom_parser
#undef xmlParseCDSect
extern __typeof (xmlParseCDSect) xmlParseCDSect __attribute((alias("xmlParseCDSect__internal_alias")));
#else
#ifndef xmlParseCDSect
extern __typeof (xmlParseCDSect) xmlParseCDSect__internal_alias __attribute((visibility("hidden")));
#define xmlParseCDSect xmlParseCDSect__internal_alias
#endif
#endif

#if defined(LIBXML_CATALOG_ENABLED)
#ifdef bottom_catalog
#undef xmlParseCatalogFile
extern __typeof (xmlParseCatalogFile) xmlParseCatalogFile __attribute((alias("xmlParseCatalogFile__internal_alias")));
#else
#ifndef xmlParseCatalogFile
extern __typeof (xmlParseCatalogFile) xmlParseCatalogFile__internal_alias __attribute((visibility("hidden")));
#define xmlParseCatalogFile xmlParseCatalogFile__internal_alias
#endif
#endif
#endif

#ifdef bottom_parser
#undef xmlParseCharData
extern __typeof (xmlParseCharData) xmlParseCharData __attribute((alias("xmlParseCharData__internal_alias")));
#else
#ifndef xmlParseCharData
extern __typeof (xmlParseCharData) xmlParseCharData__internal_alias __attribute((visibility("hidden")));
#define xmlParseCharData xmlParseCharData__internal_alias
#endif
#endif

#ifdef bottom_encoding
#undef xmlParseCharEncoding
extern __typeof (xmlParseCharEncoding) xmlParseCharEncoding __attribute((alias("xmlParseCharEncoding__internal_alias")));
#else
#ifndef xmlParseCharEncoding
extern __typeof (xmlParseCharEncoding) xmlParseCharEncoding__internal_alias __attribute((visibility("hidden")));
#define xmlParseCharEncoding xmlParseCharEncoding__internal_alias
#endif
#endif

#ifdef bottom_parser
#undef xmlParseCharRef
extern __typeof (xmlParseCharRef) xmlParseCharRef __attribute((alias("xmlParseCharRef__internal_alias")));
#else
#ifndef xmlParseCharRef
extern __typeof (xmlParseCharRef) xmlParseCharRef__internal_alias __attribute((visibility("hidden")));
#define xmlParseCharRef xmlParseCharRef__internal_alias
#endif
#endif

#if defined(LIBXML_PUSH_ENABLED)
#ifdef bottom_parser
#undef xmlParseChunk
extern __typeof (xmlParseChunk) xmlParseChunk __attribute((alias("xmlParseChunk__internal_alias")));
#else
#ifndef xmlParseChunk
extern __typeof (xmlParseChunk) xmlParseChunk__internal_alias __attribute((visibility("hidden")));
#define xmlParseChunk xmlParseChunk__internal_alias
#endif
#endif
#endif

#ifdef bottom_parser
#undef xmlParseComment
extern __typeof (xmlParseComment) xmlParseComment __attribute((alias("xmlParseComment__internal_alias")));
#else
#ifndef xmlParseComment
extern __typeof (xmlParseComment) xmlParseComment__internal_alias __attribute((visibility("hidden")));
#define xmlParseComment xmlParseComment__internal_alias
#endif
#endif

#ifdef bottom_parser
#undef xmlParseContent
extern __typeof (xmlParseContent) xmlParseContent __attribute((alias("xmlParseContent__internal_alias")));
#else
#ifndef xmlParseContent
extern __typeof (xmlParseContent) xmlParseContent__internal_alias __attribute((visibility("hidden")));
#define xmlParseContent xmlParseContent__internal_alias
#endif
#endif

#ifdef bottom_parser
#undef xmlParseCtxtExternalEntity
extern __typeof (xmlParseCtxtExternalEntity) xmlParseCtxtExternalEntity __attribute((alias("xmlParseCtxtExternalEntity__internal_alias")));
#else
#ifndef xmlParseCtxtExternalEntity
extern __typeof (xmlParseCtxtExternalEntity) xmlParseCtxtExternalEntity__internal_alias __attribute((visibility("hidden")));
#define xmlParseCtxtExternalEntity xmlParseCtxtExternalEntity__internal_alias
#endif
#endif

#if defined(LIBXML_VALID_ENABLED)
#ifdef bottom_parser
#undef xmlParseDTD
extern __typeof (xmlParseDTD) xmlParseDTD __attribute((alias("xmlParseDTD__internal_alias")));
#else
#ifndef xmlParseDTD
extern __typeof (xmlParseDTD) xmlParseDTD__internal_alias __attribute((visibility("hidden")));
#define xmlParseDTD xmlParseDTD__internal_alias
#endif
#endif
#endif

#ifdef bottom_parser
#undef xmlParseDefaultDecl
extern __typeof (xmlParseDefaultDecl) xmlParseDefaultDecl __attribute((alias("xmlParseDefaultDecl__internal_alias")));
#else
#ifndef xmlParseDefaultDecl
extern __typeof (xmlParseDefaultDecl) xmlParseDefaultDecl__internal_alias __attribute((visibility("hidden")));
#define xmlParseDefaultDecl xmlParseDefaultDecl__internal_alias
#endif
#endif

#if defined(LIBXML_SAX1_ENABLED)
#ifdef bottom_parser
#undef xmlParseDoc
extern __typeof (xmlParseDoc) xmlParseDoc __attribute((alias("xmlParseDoc__internal_alias")));
#else
#ifndef xmlParseDoc
extern __typeof (xmlParseDoc) xmlParseDoc__internal_alias __attribute((visibility("hidden")));
#define xmlParseDoc xmlParseDoc__internal_alias
#endif
#endif
#endif

#ifdef bottom_parser
#undef xmlParseDocTypeDecl
extern __typeof (xmlParseDocTypeDecl) xmlParseDocTypeDecl __attribute((alias("xmlParseDocTypeDecl__internal_alias")));
#else
#ifndef xmlParseDocTypeDecl
extern __typeof (xmlParseDocTypeDecl) xmlParseDocTypeDecl__internal_alias __attribute((visibility("hidden")));
#define xmlParseDocTypeDecl xmlParseDocTypeDecl__internal_alias
#endif
#endif

#ifdef bottom_parser
#undef xmlParseDocument
extern __typeof (xmlParseDocument) xmlParseDocument __attribute((alias("xmlParseDocument__internal_alias")));
#else
#ifndef xmlParseDocument
extern __typeof (xmlParseDocument) xmlParseDocument__internal_alias __attribute((visibility("hidden")));
#define xmlParseDocument xmlParseDocument__internal_alias
#endif
#endif

#ifdef bottom_parser
#undef xmlParseElement
extern __typeof (xmlParseElement) xmlParseElement __attribute((alias("xmlParseElement__internal_alias")));
#else
#ifndef xmlParseElement
extern __typeof (xmlParseElement) xmlParseElement__internal_alias __attribute((visibility("hidden")));
#define xmlParseElement xmlParseElement__internal_alias
#endif
#endif

#ifdef bottom_parser
#undef xmlParseElementChildrenContentDecl
extern __typeof (xmlParseElementChildrenContentDecl) xmlParseElementChildrenContentDecl __attribute((alias("xmlParseElementChildrenContentDecl__internal_alias")));
#else
#ifndef xmlParseElementChildrenContentDecl
extern __typeof (xmlParseElementChildrenContentDecl) xmlParseElementChildrenContentDecl__internal_alias __attribute((visibility("hidden")));
#define xmlParseElementChildrenContentDecl xmlParseElementChildrenContentDecl__internal_alias
#endif
#endif

#ifdef bottom_parser
#undef xmlParseElementContentDecl
extern __typeof (xmlParseElementContentDecl) xmlParseElementContentDecl __attribute((alias("xmlParseElementContentDecl__internal_alias")));
#else
#ifndef xmlParseElementContentDecl
extern __typeof (xmlParseElementContentDecl) xmlParseElementContentDecl__internal_alias __attribute((visibility("hidden")));
#define xmlParseElementContentDecl xmlParseElementContentDecl__internal_alias
#endif
#endif

#ifdef bottom_parser
#undef xmlParseElementDecl
extern __typeof (xmlParseElementDecl) xmlParseElementDecl __attribute((alias("xmlParseElementDecl__internal_alias")));
#else
#ifndef xmlParseElementDecl
extern __typeof (xmlParseElementDecl) xmlParseElementDecl__internal_alias __attribute((visibility("hidden")));
#define xmlParseElementDecl xmlParseElementDecl__internal_alias
#endif
#endif

#ifdef bottom_parser
#undef xmlParseElementMixedContentDecl
extern __typeof (xmlParseElementMixedContentDecl) xmlParseElementMixedContentDecl __attribute((alias("xmlParseElementMixedContentDecl__internal_alias")));
#else
#ifndef xmlParseElementMixedContentDecl
extern __typeof (xmlParseElementMixedContentDecl) xmlParseElementMixedContentDecl__internal_alias __attribute((visibility("hidden")));
#define xmlParseElementMixedContentDecl xmlParseElementMixedContentDecl__internal_alias
#endif
#endif

#ifdef bottom_parser
#undef xmlParseEncName
extern __typeof (xmlParseEncName) xmlParseEncName __attribute((alias("xmlParseEncName__internal_alias")));
#else
#ifndef xmlParseEncName
extern __typeof (xmlParseEncName) xmlParseEncName__internal_alias __attribute((visibility("hidden")));
#define xmlParseEncName xmlParseEncName__internal_alias
#endif
#endif

#ifdef bottom_parser
#undef xmlParseEncodingDecl
extern __typeof (xmlParseEncodingDecl) xmlParseEncodingDecl __attribute((alias("xmlParseEncodingDecl__internal_alias")));
#else
#ifndef xmlParseEncodingDecl
extern __typeof (xmlParseEncodingDecl) xmlParseEncodingDecl__internal_alias __attribute((visibility("hidden")));
#define xmlParseEncodingDecl xmlParseEncodingDecl__internal_alias
#endif
#endif

#if defined(LIBXML_SAX1_ENABLED)
#ifdef bottom_parser
#undef xmlParseEndTag
extern __typeof (xmlParseEndTag) xmlParseEndTag __attribute((alias("xmlParseEndTag__internal_alias")));
#else
#ifndef xmlParseEndTag
extern __typeof (xmlParseEndTag) xmlParseEndTag__internal_alias __attribute((visibility("hidden")));
#define xmlParseEndTag xmlParseEndTag__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_SAX1_ENABLED)
#ifdef bottom_parser
#undef xmlParseEntity
extern __typeof (xmlParseEntity) xmlParseEntity __attribute((alias("xmlParseEntity__internal_alias")));
#else
#ifndef xmlParseEntity
extern __typeof (xmlParseEntity) xmlParseEntity__internal_alias __attribute((visibility("hidden")));
#define xmlParseEntity xmlParseEntity__internal_alias
#endif
#endif
#endif

#ifdef bottom_parser
#undef xmlParseEntityDecl
extern __typeof (xmlParseEntityDecl) xmlParseEntityDecl __attribute((alias("xmlParseEntityDecl__internal_alias")));
#else
#ifndef xmlParseEntityDecl
extern __typeof (xmlParseEntityDecl) xmlParseEntityDecl__internal_alias __attribute((visibility("hidden")));
#define xmlParseEntityDecl xmlParseEntityDecl__internal_alias
#endif
#endif

#ifdef bottom_parser
#undef xmlParseEntityRef
extern __typeof (xmlParseEntityRef) xmlParseEntityRef __attribute((alias("xmlParseEntityRef__internal_alias")));
#else
#ifndef xmlParseEntityRef
extern __typeof (xmlParseEntityRef) xmlParseEntityRef__internal_alias __attribute((visibility("hidden")));
#define xmlParseEntityRef xmlParseEntityRef__internal_alias
#endif
#endif

#ifdef bottom_parser
#undef xmlParseEntityValue
extern __typeof (xmlParseEntityValue) xmlParseEntityValue __attribute((alias("xmlParseEntityValue__internal_alias")));
#else
#ifndef xmlParseEntityValue
extern __typeof (xmlParseEntityValue) xmlParseEntityValue__internal_alias __attribute((visibility("hidden")));
#define xmlParseEntityValue xmlParseEntityValue__internal_alias
#endif
#endif

#ifdef bottom_parser
#undef xmlParseEnumeratedType
extern __typeof (xmlParseEnumeratedType) xmlParseEnumeratedType __attribute((alias("xmlParseEnumeratedType__internal_alias")));
#else
#ifndef xmlParseEnumeratedType
extern __typeof (xmlParseEnumeratedType) xmlParseEnumeratedType__internal_alias __attribute((visibility("hidden")));
#define xmlParseEnumeratedType xmlParseEnumeratedType__internal_alias
#endif
#endif

#ifdef bottom_parser
#undef xmlParseEnumerationType
extern __typeof (xmlParseEnumerationType) xmlParseEnumerationType __attribute((alias("xmlParseEnumerationType__internal_alias")));
#else
#ifndef xmlParseEnumerationType
extern __typeof (xmlParseEnumerationType) xmlParseEnumerationType__internal_alias __attribute((visibility("hidden")));
#define xmlParseEnumerationType xmlParseEnumerationType__internal_alias
#endif
#endif

#ifdef bottom_parser
#undef xmlParseExtParsedEnt
extern __typeof (xmlParseExtParsedEnt) xmlParseExtParsedEnt __attribute((alias("xmlParseExtParsedEnt__internal_alias")));
#else
#ifndef xmlParseExtParsedEnt
extern __typeof (xmlParseExtParsedEnt) xmlParseExtParsedEnt__internal_alias __attribute((visibility("hidden")));
#define xmlParseExtParsedEnt xmlParseExtParsedEnt__internal_alias
#endif
#endif

#if defined(LIBXML_SAX1_ENABLED)
#ifdef bottom_parser
#undef xmlParseExternalEntity
extern __typeof (xmlParseExternalEntity) xmlParseExternalEntity __attribute((alias("xmlParseExternalEntity__internal_alias")));
#else
#ifndef xmlParseExternalEntity
extern __typeof (xmlParseExternalEntity) xmlParseExternalEntity__internal_alias __attribute((visibility("hidden")));
#define xmlParseExternalEntity xmlParseExternalEntity__internal_alias
#endif
#endif
#endif

#ifdef bottom_parser
#undef xmlParseExternalID
extern __typeof (xmlParseExternalID) xmlParseExternalID __attribute((alias("xmlParseExternalID__internal_alias")));
#else
#ifndef xmlParseExternalID
extern __typeof (xmlParseExternalID) xmlParseExternalID__internal_alias __attribute((visibility("hidden")));
#define xmlParseExternalID xmlParseExternalID__internal_alias
#endif
#endif

#ifdef bottom_parser
#undef xmlParseExternalSubset
extern __typeof (xmlParseExternalSubset) xmlParseExternalSubset __attribute((alias("xmlParseExternalSubset__internal_alias")));
#else
#ifndef xmlParseExternalSubset
extern __typeof (xmlParseExternalSubset) xmlParseExternalSubset__internal_alias __attribute((visibility("hidden")));
#define xmlParseExternalSubset xmlParseExternalSubset__internal_alias
#endif
#endif

#if defined(LIBXML_SAX1_ENABLED)
#ifdef bottom_parser
#undef xmlParseFile
extern __typeof (xmlParseFile) xmlParseFile __attribute((alias("xmlParseFile__internal_alias")));
#else
#ifndef xmlParseFile
extern __typeof (xmlParseFile) xmlParseFile__internal_alias __attribute((visibility("hidden")));
#define xmlParseFile xmlParseFile__internal_alias
#endif
#endif
#endif

#ifdef bottom_parser
#undef xmlParseInNodeContext
extern __typeof (xmlParseInNodeContext) xmlParseInNodeContext __attribute((alias("xmlParseInNodeContext__internal_alias")));
#else
#ifndef xmlParseInNodeContext
extern __typeof (xmlParseInNodeContext) xmlParseInNodeContext__internal_alias __attribute((visibility("hidden")));
#define xmlParseInNodeContext xmlParseInNodeContext__internal_alias
#endif
#endif

#ifdef bottom_parser
#undef xmlParseMarkupDecl
extern __typeof (xmlParseMarkupDecl) xmlParseMarkupDecl __attribute((alias("xmlParseMarkupDecl__internal_alias")));
#else
#ifndef xmlParseMarkupDecl
extern __typeof (xmlParseMarkupDecl) xmlParseMarkupDecl__internal_alias __attribute((visibility("hidden")));
#define xmlParseMarkupDecl xmlParseMarkupDecl__internal_alias
#endif
#endif

#if defined(LIBXML_SAX1_ENABLED)
#ifdef bottom_parser
#undef xmlParseMemory
extern __typeof (xmlParseMemory) xmlParseMemory __attribute((alias("xmlParseMemory__internal_alias")));
#else
#ifndef xmlParseMemory
extern __typeof (xmlParseMemory) xmlParseMemory__internal_alias __attribute((visibility("hidden")));
#define xmlParseMemory xmlParseMemory__internal_alias
#endif
#endif
#endif

#ifdef bottom_parser
#undef xmlParseMisc
extern __typeof (xmlParseMisc) xmlParseMisc __attribute((alias("xmlParseMisc__internal_alias")));
#else
#ifndef xmlParseMisc
extern __typeof (xmlParseMisc) xmlParseMisc__internal_alias __attribute((visibility("hidden")));
#define xmlParseMisc xmlParseMisc__internal_alias
#endif
#endif

#ifdef bottom_parser
#undef xmlParseName
extern __typeof (xmlParseName) xmlParseName __attribute((alias("xmlParseName__internal_alias")));
#else
#ifndef xmlParseName
extern __typeof (xmlParseName) xmlParseName__internal_alias __attribute((visibility("hidden")));
#define xmlParseName xmlParseName__internal_alias
#endif
#endif

#if defined(LIBXML_LEGACY_ENABLED)
#ifdef bottom_legacy
#undef xmlParseNamespace
extern __typeof (xmlParseNamespace) xmlParseNamespace __attribute((alias("xmlParseNamespace__internal_alias")));
#else
#ifndef xmlParseNamespace
extern __typeof (xmlParseNamespace) xmlParseNamespace__internal_alias __attribute((visibility("hidden")));
#define xmlParseNamespace xmlParseNamespace__internal_alias
#endif
#endif
#endif

#ifdef bottom_parser
#undef xmlParseNmtoken
extern __typeof (xmlParseNmtoken) xmlParseNmtoken __attribute((alias("xmlParseNmtoken__internal_alias")));
#else
#ifndef xmlParseNmtoken
extern __typeof (xmlParseNmtoken) xmlParseNmtoken__internal_alias __attribute((visibility("hidden")));
#define xmlParseNmtoken xmlParseNmtoken__internal_alias
#endif
#endif

#ifdef bottom_parser
#undef xmlParseNotationDecl
extern __typeof (xmlParseNotationDecl) xmlParseNotationDecl __attribute((alias("xmlParseNotationDecl__internal_alias")));
#else
#ifndef xmlParseNotationDecl
extern __typeof (xmlParseNotationDecl) xmlParseNotationDecl__internal_alias __attribute((visibility("hidden")));
#define xmlParseNotationDecl xmlParseNotationDecl__internal_alias
#endif
#endif

#ifdef bottom_parser
#undef xmlParseNotationType
extern __typeof (xmlParseNotationType) xmlParseNotationType __attribute((alias("xmlParseNotationType__internal_alias")));
#else
#ifndef xmlParseNotationType
extern __typeof (xmlParseNotationType) xmlParseNotationType__internal_alias __attribute((visibility("hidden")));
#define xmlParseNotationType xmlParseNotationType__internal_alias
#endif
#endif

#ifdef bottom_parser
#undef xmlParsePEReference
extern __typeof (xmlParsePEReference) xmlParsePEReference __attribute((alias("xmlParsePEReference__internal_alias")));
#else
#ifndef xmlParsePEReference
extern __typeof (xmlParsePEReference) xmlParsePEReference__internal_alias __attribute((visibility("hidden")));
#define xmlParsePEReference xmlParsePEReference__internal_alias
#endif
#endif

#ifdef bottom_parser
#undef xmlParsePI
extern __typeof (xmlParsePI) xmlParsePI __attribute((alias("xmlParsePI__internal_alias")));
#else
#ifndef xmlParsePI
extern __typeof (xmlParsePI) xmlParsePI__internal_alias __attribute((visibility("hidden")));
#define xmlParsePI xmlParsePI__internal_alias
#endif
#endif

#ifdef bottom_parser
#undef xmlParsePITarget
extern __typeof (xmlParsePITarget) xmlParsePITarget __attribute((alias("xmlParsePITarget__internal_alias")));
#else
#ifndef xmlParsePITarget
extern __typeof (xmlParsePITarget) xmlParsePITarget__internal_alias __attribute((visibility("hidden")));
#define xmlParsePITarget xmlParsePITarget__internal_alias
#endif
#endif

#ifdef bottom_parser
#undef xmlParsePubidLiteral
extern __typeof (xmlParsePubidLiteral) xmlParsePubidLiteral __attribute((alias("xmlParsePubidLiteral__internal_alias")));
#else
#ifndef xmlParsePubidLiteral
extern __typeof (xmlParsePubidLiteral) xmlParsePubidLiteral__internal_alias __attribute((visibility("hidden")));
#define xmlParsePubidLiteral xmlParsePubidLiteral__internal_alias
#endif
#endif

#if defined(LIBXML_LEGACY_ENABLED)
#ifdef bottom_legacy
#undef xmlParseQuotedString
extern __typeof (xmlParseQuotedString) xmlParseQuotedString __attribute((alias("xmlParseQuotedString__internal_alias")));
#else
#ifndef xmlParseQuotedString
extern __typeof (xmlParseQuotedString) xmlParseQuotedString__internal_alias __attribute((visibility("hidden")));
#define xmlParseQuotedString xmlParseQuotedString__internal_alias
#endif
#endif
#endif

#ifdef bottom_parser
#undef xmlParseReference
extern __typeof (xmlParseReference) xmlParseReference __attribute((alias("xmlParseReference__internal_alias")));
#else
#ifndef xmlParseReference
extern __typeof (xmlParseReference) xmlParseReference__internal_alias __attribute((visibility("hidden")));
#define xmlParseReference xmlParseReference__internal_alias
#endif
#endif

#ifdef bottom_parser
#undef xmlParseSDDecl
extern __typeof (xmlParseSDDecl) xmlParseSDDecl __attribute((alias("xmlParseSDDecl__internal_alias")));
#else
#ifndef xmlParseSDDecl
extern __typeof (xmlParseSDDecl) xmlParseSDDecl__internal_alias __attribute((visibility("hidden")));
#define xmlParseSDDecl xmlParseSDDecl__internal_alias
#endif
#endif

#if defined(LIBXML_SAX1_ENABLED)
#ifdef bottom_parser
#undef xmlParseStartTag
extern __typeof (xmlParseStartTag) xmlParseStartTag __attribute((alias("xmlParseStartTag__internal_alias")));
#else
#ifndef xmlParseStartTag
extern __typeof (xmlParseStartTag) xmlParseStartTag__internal_alias __attribute((visibility("hidden")));
#define xmlParseStartTag xmlParseStartTag__internal_alias
#endif
#endif
#endif

#ifdef bottom_parser
#undef xmlParseSystemLiteral
extern __typeof (xmlParseSystemLiteral) xmlParseSystemLiteral __attribute((alias("xmlParseSystemLiteral__internal_alias")));
#else
#ifndef xmlParseSystemLiteral
extern __typeof (xmlParseSystemLiteral) xmlParseSystemLiteral__internal_alias __attribute((visibility("hidden")));
#define xmlParseSystemLiteral xmlParseSystemLiteral__internal_alias
#endif
#endif

#ifdef bottom_parser
#undef xmlParseTextDecl
extern __typeof (xmlParseTextDecl) xmlParseTextDecl __attribute((alias("xmlParseTextDecl__internal_alias")));
#else
#ifndef xmlParseTextDecl
extern __typeof (xmlParseTextDecl) xmlParseTextDecl__internal_alias __attribute((visibility("hidden")));
#define xmlParseTextDecl xmlParseTextDecl__internal_alias
#endif
#endif

#ifdef bottom_uri
#undef xmlParseURI
extern __typeof (xmlParseURI) xmlParseURI __attribute((alias("xmlParseURI__internal_alias")));
#else
#ifndef xmlParseURI
extern __typeof (xmlParseURI) xmlParseURI__internal_alias __attribute((visibility("hidden")));
#define xmlParseURI xmlParseURI__internal_alias
#endif
#endif

#ifdef bottom_uri
#undef xmlParseURIRaw
extern __typeof (xmlParseURIRaw) xmlParseURIRaw __attribute((alias("xmlParseURIRaw__internal_alias")));
#else
#ifndef xmlParseURIRaw
extern __typeof (xmlParseURIRaw) xmlParseURIRaw__internal_alias __attribute((visibility("hidden")));
#define xmlParseURIRaw xmlParseURIRaw__internal_alias
#endif
#endif

#ifdef bottom_uri
#undef xmlParseURIReference
extern __typeof (xmlParseURIReference) xmlParseURIReference __attribute((alias("xmlParseURIReference__internal_alias")));
#else
#ifndef xmlParseURIReference
extern __typeof (xmlParseURIReference) xmlParseURIReference__internal_alias __attribute((visibility("hidden")));
#define xmlParseURIReference xmlParseURIReference__internal_alias
#endif
#endif

#ifdef bottom_parser
#undef xmlParseVersionInfo
extern __typeof (xmlParseVersionInfo) xmlParseVersionInfo __attribute((alias("xmlParseVersionInfo__internal_alias")));
#else
#ifndef xmlParseVersionInfo
extern __typeof (xmlParseVersionInfo) xmlParseVersionInfo__internal_alias __attribute((visibility("hidden")));
#define xmlParseVersionInfo xmlParseVersionInfo__internal_alias
#endif
#endif

#ifdef bottom_parser
#undef xmlParseVersionNum
extern __typeof (xmlParseVersionNum) xmlParseVersionNum __attribute((alias("xmlParseVersionNum__internal_alias")));
#else
#ifndef xmlParseVersionNum
extern __typeof (xmlParseVersionNum) xmlParseVersionNum__internal_alias __attribute((visibility("hidden")));
#define xmlParseVersionNum xmlParseVersionNum__internal_alias
#endif
#endif

#ifdef bottom_parser
#undef xmlParseXMLDecl
extern __typeof (xmlParseXMLDecl) xmlParseXMLDecl __attribute((alias("xmlParseXMLDecl__internal_alias")));
#else
#ifndef xmlParseXMLDecl
extern __typeof (xmlParseXMLDecl) xmlParseXMLDecl__internal_alias __attribute((visibility("hidden")));
#define xmlParseXMLDecl xmlParseXMLDecl__internal_alias
#endif
#endif

#ifdef bottom_parserInternals
#undef xmlParserAddNodeInfo
extern __typeof (xmlParserAddNodeInfo) xmlParserAddNodeInfo __attribute((alias("xmlParserAddNodeInfo__internal_alias")));
#else
#ifndef xmlParserAddNodeInfo
extern __typeof (xmlParserAddNodeInfo) xmlParserAddNodeInfo__internal_alias __attribute((visibility("hidden")));
#define xmlParserAddNodeInfo xmlParserAddNodeInfo__internal_alias
#endif
#endif

#ifdef bottom_error
#undef xmlParserError
extern __typeof (xmlParserError) xmlParserError __attribute((alias("xmlParserError__internal_alias")));
#else
#ifndef xmlParserError
extern __typeof (xmlParserError) xmlParserError__internal_alias __attribute((visibility("hidden")));
#define xmlParserError xmlParserError__internal_alias
#endif
#endif

#ifdef bottom_parserInternals
#undef xmlParserFindNodeInfo
extern __typeof (xmlParserFindNodeInfo) xmlParserFindNodeInfo __attribute((alias("xmlParserFindNodeInfo__internal_alias")));
#else
#ifndef xmlParserFindNodeInfo
extern __typeof (xmlParserFindNodeInfo) xmlParserFindNodeInfo__internal_alias __attribute((visibility("hidden")));
#define xmlParserFindNodeInfo xmlParserFindNodeInfo__internal_alias
#endif
#endif

#ifdef bottom_parserInternals
#undef xmlParserFindNodeInfoIndex
extern __typeof (xmlParserFindNodeInfoIndex) xmlParserFindNodeInfoIndex __attribute((alias("xmlParserFindNodeInfoIndex__internal_alias")));
#else
#ifndef xmlParserFindNodeInfoIndex
extern __typeof (xmlParserFindNodeInfoIndex) xmlParserFindNodeInfoIndex__internal_alias __attribute((visibility("hidden")));
#define xmlParserFindNodeInfoIndex xmlParserFindNodeInfoIndex__internal_alias
#endif
#endif

#ifdef bottom_xmlIO
#undef xmlParserGetDirectory
extern __typeof (xmlParserGetDirectory) xmlParserGetDirectory __attribute((alias("xmlParserGetDirectory__internal_alias")));
#else
#ifndef xmlParserGetDirectory
extern __typeof (xmlParserGetDirectory) xmlParserGetDirectory__internal_alias __attribute((visibility("hidden")));
#define xmlParserGetDirectory xmlParserGetDirectory__internal_alias
#endif
#endif

#ifdef bottom_parser
#undef xmlParserHandlePEReference
extern __typeof (xmlParserHandlePEReference) xmlParserHandlePEReference __attribute((alias("xmlParserHandlePEReference__internal_alias")));
#else
#ifndef xmlParserHandlePEReference
extern __typeof (xmlParserHandlePEReference) xmlParserHandlePEReference__internal_alias __attribute((visibility("hidden")));
#define xmlParserHandlePEReference xmlParserHandlePEReference__internal_alias
#endif
#endif

#if defined(LIBXML_LEGACY_ENABLED)
#ifdef bottom_legacy
#undef xmlParserHandleReference
extern __typeof (xmlParserHandleReference) xmlParserHandleReference __attribute((alias("xmlParserHandleReference__internal_alias")));
#else
#ifndef xmlParserHandleReference
extern __typeof (xmlParserHandleReference) xmlParserHandleReference__internal_alias __attribute((visibility("hidden")));
#define xmlParserHandleReference xmlParserHandleReference__internal_alias
#endif
#endif
#endif

#ifdef bottom_xmlIO
#undef xmlParserInputBufferCreateFd
extern __typeof (xmlParserInputBufferCreateFd) xmlParserInputBufferCreateFd __attribute((alias("xmlParserInputBufferCreateFd__internal_alias")));
#else
#ifndef xmlParserInputBufferCreateFd
extern __typeof (xmlParserInputBufferCreateFd) xmlParserInputBufferCreateFd__internal_alias __attribute((visibility("hidden")));
#define xmlParserInputBufferCreateFd xmlParserInputBufferCreateFd__internal_alias
#endif
#endif

#ifdef bottom_xmlIO
#undef xmlParserInputBufferCreateFile
extern __typeof (xmlParserInputBufferCreateFile) xmlParserInputBufferCreateFile __attribute((alias("xmlParserInputBufferCreateFile__internal_alias")));
#else
#ifndef xmlParserInputBufferCreateFile
extern __typeof (xmlParserInputBufferCreateFile) xmlParserInputBufferCreateFile__internal_alias __attribute((visibility("hidden")));
#define xmlParserInputBufferCreateFile xmlParserInputBufferCreateFile__internal_alias
#endif
#endif

#ifdef bottom_xmlIO
#undef xmlParserInputBufferCreateFilename
extern __typeof (xmlParserInputBufferCreateFilename) xmlParserInputBufferCreateFilename __attribute((alias("xmlParserInputBufferCreateFilename__internal_alias")));
#else
#ifndef xmlParserInputBufferCreateFilename
extern __typeof (xmlParserInputBufferCreateFilename) xmlParserInputBufferCreateFilename__internal_alias __attribute((visibility("hidden")));
#define xmlParserInputBufferCreateFilename xmlParserInputBufferCreateFilename__internal_alias
#endif
#endif

#ifdef bottom_xmlIO
#undef xmlParserInputBufferCreateFilenameDefault
extern __typeof (xmlParserInputBufferCreateFilenameDefault) xmlParserInputBufferCreateFilenameDefault __attribute((alias("xmlParserInputBufferCreateFilenameDefault__internal_alias")));
#else
#ifndef xmlParserInputBufferCreateFilenameDefault
extern __typeof (xmlParserInputBufferCreateFilenameDefault) xmlParserInputBufferCreateFilenameDefault__internal_alias __attribute((visibility("hidden")));
#define xmlParserInputBufferCreateFilenameDefault xmlParserInputBufferCreateFilenameDefault__internal_alias
#endif
#endif

#ifdef bottom_xmlIO
#undef xmlParserInputBufferCreateIO
extern __typeof (xmlParserInputBufferCreateIO) xmlParserInputBufferCreateIO __attribute((alias("xmlParserInputBufferCreateIO__internal_alias")));
#else
#ifndef xmlParserInputBufferCreateIO
extern __typeof (xmlParserInputBufferCreateIO) xmlParserInputBufferCreateIO__internal_alias __attribute((visibility("hidden")));
#define xmlParserInputBufferCreateIO xmlParserInputBufferCreateIO__internal_alias
#endif
#endif

#ifdef bottom_xmlIO
#undef xmlParserInputBufferCreateMem
extern __typeof (xmlParserInputBufferCreateMem) xmlParserInputBufferCreateMem __attribute((alias("xmlParserInputBufferCreateMem__internal_alias")));
#else
#ifndef xmlParserInputBufferCreateMem
extern __typeof (xmlParserInputBufferCreateMem) xmlParserInputBufferCreateMem__internal_alias __attribute((visibility("hidden")));
#define xmlParserInputBufferCreateMem xmlParserInputBufferCreateMem__internal_alias
#endif
#endif

#ifdef bottom_xmlIO
#undef xmlParserInputBufferCreateStatic
extern __typeof (xmlParserInputBufferCreateStatic) xmlParserInputBufferCreateStatic __attribute((alias("xmlParserInputBufferCreateStatic__internal_alias")));
#else
#ifndef xmlParserInputBufferCreateStatic
extern __typeof (xmlParserInputBufferCreateStatic) xmlParserInputBufferCreateStatic__internal_alias __attribute((visibility("hidden")));
#define xmlParserInputBufferCreateStatic xmlParserInputBufferCreateStatic__internal_alias
#endif
#endif

#ifdef bottom_xmlIO
#undef xmlParserInputBufferGrow
extern __typeof (xmlParserInputBufferGrow) xmlParserInputBufferGrow __attribute((alias("xmlParserInputBufferGrow__internal_alias")));
#else
#ifndef xmlParserInputBufferGrow
extern __typeof (xmlParserInputBufferGrow) xmlParserInputBufferGrow__internal_alias __attribute((visibility("hidden")));
#define xmlParserInputBufferGrow xmlParserInputBufferGrow__internal_alias
#endif
#endif

#ifdef bottom_xmlIO
#undef xmlParserInputBufferPush
extern __typeof (xmlParserInputBufferPush) xmlParserInputBufferPush __attribute((alias("xmlParserInputBufferPush__internal_alias")));
#else
#ifndef xmlParserInputBufferPush
extern __typeof (xmlParserInputBufferPush) xmlParserInputBufferPush__internal_alias __attribute((visibility("hidden")));
#define xmlParserInputBufferPush xmlParserInputBufferPush__internal_alias
#endif
#endif

#ifdef bottom_xmlIO
#undef xmlParserInputBufferRead
extern __typeof (xmlParserInputBufferRead) xmlParserInputBufferRead __attribute((alias("xmlParserInputBufferRead__internal_alias")));
#else
#ifndef xmlParserInputBufferRead
extern __typeof (xmlParserInputBufferRead) xmlParserInputBufferRead__internal_alias __attribute((visibility("hidden")));
#define xmlParserInputBufferRead xmlParserInputBufferRead__internal_alias
#endif
#endif

#ifdef bottom_parserInternals
#undef xmlParserInputGrow
extern __typeof (xmlParserInputGrow) xmlParserInputGrow __attribute((alias("xmlParserInputGrow__internal_alias")));
#else
#ifndef xmlParserInputGrow
extern __typeof (xmlParserInputGrow) xmlParserInputGrow__internal_alias __attribute((visibility("hidden")));
#define xmlParserInputGrow xmlParserInputGrow__internal_alias
#endif
#endif

#ifdef bottom_parserInternals
#undef xmlParserInputRead
extern __typeof (xmlParserInputRead) xmlParserInputRead __attribute((alias("xmlParserInputRead__internal_alias")));
#else
#ifndef xmlParserInputRead
extern __typeof (xmlParserInputRead) xmlParserInputRead__internal_alias __attribute((visibility("hidden")));
#define xmlParserInputRead xmlParserInputRead__internal_alias
#endif
#endif

#ifdef bottom_parserInternals
#undef xmlParserInputShrink
extern __typeof (xmlParserInputShrink) xmlParserInputShrink __attribute((alias("xmlParserInputShrink__internal_alias")));
#else
#ifndef xmlParserInputShrink
extern __typeof (xmlParserInputShrink) xmlParserInputShrink__internal_alias __attribute((visibility("hidden")));
#define xmlParserInputShrink xmlParserInputShrink__internal_alias
#endif
#endif

#ifdef bottom_error
#undef xmlParserPrintFileContext
extern __typeof (xmlParserPrintFileContext) xmlParserPrintFileContext __attribute((alias("xmlParserPrintFileContext__internal_alias")));
#else
#ifndef xmlParserPrintFileContext
extern __typeof (xmlParserPrintFileContext) xmlParserPrintFileContext__internal_alias __attribute((visibility("hidden")));
#define xmlParserPrintFileContext xmlParserPrintFileContext__internal_alias
#endif
#endif

#ifdef bottom_error
#undef xmlParserPrintFileInfo
extern __typeof (xmlParserPrintFileInfo) xmlParserPrintFileInfo __attribute((alias("xmlParserPrintFileInfo__internal_alias")));
#else
#ifndef xmlParserPrintFileInfo
extern __typeof (xmlParserPrintFileInfo) xmlParserPrintFileInfo__internal_alias __attribute((visibility("hidden")));
#define xmlParserPrintFileInfo xmlParserPrintFileInfo__internal_alias
#endif
#endif

#ifdef bottom_error
#undef xmlParserValidityError
extern __typeof (xmlParserValidityError) xmlParserValidityError __attribute((alias("xmlParserValidityError__internal_alias")));
#else
#ifndef xmlParserValidityError
extern __typeof (xmlParserValidityError) xmlParserValidityError__internal_alias __attribute((visibility("hidden")));
#define xmlParserValidityError xmlParserValidityError__internal_alias
#endif
#endif

#ifdef bottom_error
#undef xmlParserValidityWarning
extern __typeof (xmlParserValidityWarning) xmlParserValidityWarning __attribute((alias("xmlParserValidityWarning__internal_alias")));
#else
#ifndef xmlParserValidityWarning
extern __typeof (xmlParserValidityWarning) xmlParserValidityWarning__internal_alias __attribute((visibility("hidden")));
#define xmlParserValidityWarning xmlParserValidityWarning__internal_alias
#endif
#endif

#ifdef bottom_error
#undef xmlParserWarning
extern __typeof (xmlParserWarning) xmlParserWarning __attribute((alias("xmlParserWarning__internal_alias")));
#else
#ifndef xmlParserWarning
extern __typeof (xmlParserWarning) xmlParserWarning__internal_alias __attribute((visibility("hidden")));
#define xmlParserWarning xmlParserWarning__internal_alias
#endif
#endif

#if defined(LIBXML_PATTERN_ENABLED)
#ifdef bottom_pattern
#undef xmlPatternFromRoot
extern __typeof (xmlPatternFromRoot) xmlPatternFromRoot __attribute((alias("xmlPatternFromRoot__internal_alias")));
#else
#ifndef xmlPatternFromRoot
extern __typeof (xmlPatternFromRoot) xmlPatternFromRoot__internal_alias __attribute((visibility("hidden")));
#define xmlPatternFromRoot xmlPatternFromRoot__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_PATTERN_ENABLED)
#ifdef bottom_pattern
#undef xmlPatternGetStreamCtxt
extern __typeof (xmlPatternGetStreamCtxt) xmlPatternGetStreamCtxt __attribute((alias("xmlPatternGetStreamCtxt__internal_alias")));
#else
#ifndef xmlPatternGetStreamCtxt
extern __typeof (xmlPatternGetStreamCtxt) xmlPatternGetStreamCtxt__internal_alias __attribute((visibility("hidden")));
#define xmlPatternGetStreamCtxt xmlPatternGetStreamCtxt__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_PATTERN_ENABLED)
#ifdef bottom_pattern
#undef xmlPatternMatch
extern __typeof (xmlPatternMatch) xmlPatternMatch __attribute((alias("xmlPatternMatch__internal_alias")));
#else
#ifndef xmlPatternMatch
extern __typeof (xmlPatternMatch) xmlPatternMatch__internal_alias __attribute((visibility("hidden")));
#define xmlPatternMatch xmlPatternMatch__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_PATTERN_ENABLED)
#ifdef bottom_pattern
#undef xmlPatternMaxDepth
extern __typeof (xmlPatternMaxDepth) xmlPatternMaxDepth __attribute((alias("xmlPatternMaxDepth__internal_alias")));
#else
#ifndef xmlPatternMaxDepth
extern __typeof (xmlPatternMaxDepth) xmlPatternMaxDepth__internal_alias __attribute((visibility("hidden")));
#define xmlPatternMaxDepth xmlPatternMaxDepth__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_PATTERN_ENABLED)
#ifdef bottom_pattern
#undef xmlPatternStreamable
extern __typeof (xmlPatternStreamable) xmlPatternStreamable __attribute((alias("xmlPatternStreamable__internal_alias")));
#else
#ifndef xmlPatternStreamable
extern __typeof (xmlPatternStreamable) xmlPatternStreamable__internal_alias __attribute((visibility("hidden")));
#define xmlPatternStreamable xmlPatternStreamable__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_PATTERN_ENABLED)
#ifdef bottom_pattern
#undef xmlPatterncompile
extern __typeof (xmlPatterncompile) xmlPatterncompile __attribute((alias("xmlPatterncompile__internal_alias")));
#else
#ifndef xmlPatterncompile
extern __typeof (xmlPatterncompile) xmlPatterncompile__internal_alias __attribute((visibility("hidden")));
#define xmlPatterncompile xmlPatterncompile__internal_alias
#endif
#endif
#endif

#ifdef bottom_parserInternals
#undef xmlPedanticParserDefault
extern __typeof (xmlPedanticParserDefault) xmlPedanticParserDefault __attribute((alias("xmlPedanticParserDefault__internal_alias")));
#else
#ifndef xmlPedanticParserDefault
extern __typeof (xmlPedanticParserDefault) xmlPedanticParserDefault__internal_alias __attribute((visibility("hidden")));
#define xmlPedanticParserDefault xmlPedanticParserDefault__internal_alias
#endif
#endif

#ifdef bottom_parser
#undef xmlPopInput
extern __typeof (xmlPopInput) xmlPopInput __attribute((alias("xmlPopInput__internal_alias")));
#else
#ifndef xmlPopInput
extern __typeof (xmlPopInput) xmlPopInput__internal_alias __attribute((visibility("hidden")));
#define xmlPopInput xmlPopInput__internal_alias
#endif
#endif

#ifdef bottom_xmlIO
#undef xmlPopInputCallbacks
extern __typeof (xmlPopInputCallbacks) xmlPopInputCallbacks __attribute((alias("xmlPopInputCallbacks__internal_alias")));
#else
#ifndef xmlPopInputCallbacks
extern __typeof (xmlPopInputCallbacks) xmlPopInputCallbacks__internal_alias __attribute((visibility("hidden")));
#define xmlPopInputCallbacks xmlPopInputCallbacks__internal_alias
#endif
#endif

#ifdef bottom_uri
#undef xmlPrintURI
extern __typeof (xmlPrintURI) xmlPrintURI __attribute((alias("xmlPrintURI__internal_alias")));
#else
#ifndef xmlPrintURI
extern __typeof (xmlPrintURI) xmlPrintURI__internal_alias __attribute((visibility("hidden")));
#define xmlPrintURI xmlPrintURI__internal_alias
#endif
#endif

#ifdef bottom_parser
#undef xmlPushInput
extern __typeof (xmlPushInput) xmlPushInput __attribute((alias("xmlPushInput__internal_alias")));
#else
#ifndef xmlPushInput
extern __typeof (xmlPushInput) xmlPushInput__internal_alias __attribute((visibility("hidden")));
#define xmlPushInput xmlPushInput__internal_alias
#endif
#endif

#ifdef bottom_threads
#undef xmlRMutexLock
extern __typeof (xmlRMutexLock) xmlRMutexLock __attribute((alias("xmlRMutexLock__internal_alias")));
#else
#ifndef xmlRMutexLock
extern __typeof (xmlRMutexLock) xmlRMutexLock__internal_alias __attribute((visibility("hidden")));
#define xmlRMutexLock xmlRMutexLock__internal_alias
#endif
#endif

#ifdef bottom_threads
#undef xmlRMutexUnlock
extern __typeof (xmlRMutexUnlock) xmlRMutexUnlock __attribute((alias("xmlRMutexUnlock__internal_alias")));
#else
#ifndef xmlRMutexUnlock
extern __typeof (xmlRMutexUnlock) xmlRMutexUnlock__internal_alias __attribute((visibility("hidden")));
#define xmlRMutexUnlock xmlRMutexUnlock__internal_alias
#endif
#endif

#ifdef bottom_parser
#undef xmlReadDoc
extern __typeof (xmlReadDoc) xmlReadDoc __attribute((alias("xmlReadDoc__internal_alias")));
#else
#ifndef xmlReadDoc
extern __typeof (xmlReadDoc) xmlReadDoc__internal_alias __attribute((visibility("hidden")));
#define xmlReadDoc xmlReadDoc__internal_alias
#endif
#endif

#ifdef bottom_parser
#undef xmlReadFd
extern __typeof (xmlReadFd) xmlReadFd __attribute((alias("xmlReadFd__internal_alias")));
#else
#ifndef xmlReadFd
extern __typeof (xmlReadFd) xmlReadFd__internal_alias __attribute((visibility("hidden")));
#define xmlReadFd xmlReadFd__internal_alias
#endif
#endif

#ifdef bottom_parser
#undef xmlReadFile
extern __typeof (xmlReadFile) xmlReadFile __attribute((alias("xmlReadFile__internal_alias")));
#else
#ifndef xmlReadFile
extern __typeof (xmlReadFile) xmlReadFile__internal_alias __attribute((visibility("hidden")));
#define xmlReadFile xmlReadFile__internal_alias
#endif
#endif

#ifdef bottom_parser
#undef xmlReadIO
extern __typeof (xmlReadIO) xmlReadIO __attribute((alias("xmlReadIO__internal_alias")));
#else
#ifndef xmlReadIO
extern __typeof (xmlReadIO) xmlReadIO__internal_alias __attribute((visibility("hidden")));
#define xmlReadIO xmlReadIO__internal_alias
#endif
#endif

#ifdef bottom_parser
#undef xmlReadMemory
extern __typeof (xmlReadMemory) xmlReadMemory __attribute((alias("xmlReadMemory__internal_alias")));
#else
#ifndef xmlReadMemory
extern __typeof (xmlReadMemory) xmlReadMemory__internal_alias __attribute((visibility("hidden")));
#define xmlReadMemory xmlReadMemory__internal_alias
#endif
#endif

#if defined(LIBXML_READER_ENABLED)
#ifdef bottom_xmlreader
#undef xmlReaderForDoc
extern __typeof (xmlReaderForDoc) xmlReaderForDoc __attribute((alias("xmlReaderForDoc__internal_alias")));
#else
#ifndef xmlReaderForDoc
extern __typeof (xmlReaderForDoc) xmlReaderForDoc__internal_alias __attribute((visibility("hidden")));
#define xmlReaderForDoc xmlReaderForDoc__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_READER_ENABLED)
#ifdef bottom_xmlreader
#undef xmlReaderForFd
extern __typeof (xmlReaderForFd) xmlReaderForFd __attribute((alias("xmlReaderForFd__internal_alias")));
#else
#ifndef xmlReaderForFd
extern __typeof (xmlReaderForFd) xmlReaderForFd__internal_alias __attribute((visibility("hidden")));
#define xmlReaderForFd xmlReaderForFd__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_READER_ENABLED)
#ifdef bottom_xmlreader
#undef xmlReaderForFile
extern __typeof (xmlReaderForFile) xmlReaderForFile __attribute((alias("xmlReaderForFile__internal_alias")));
#else
#ifndef xmlReaderForFile
extern __typeof (xmlReaderForFile) xmlReaderForFile__internal_alias __attribute((visibility("hidden")));
#define xmlReaderForFile xmlReaderForFile__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_READER_ENABLED)
#ifdef bottom_xmlreader
#undef xmlReaderForIO
extern __typeof (xmlReaderForIO) xmlReaderForIO __attribute((alias("xmlReaderForIO__internal_alias")));
#else
#ifndef xmlReaderForIO
extern __typeof (xmlReaderForIO) xmlReaderForIO__internal_alias __attribute((visibility("hidden")));
#define xmlReaderForIO xmlReaderForIO__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_READER_ENABLED)
#ifdef bottom_xmlreader
#undef xmlReaderForMemory
extern __typeof (xmlReaderForMemory) xmlReaderForMemory __attribute((alias("xmlReaderForMemory__internal_alias")));
#else
#ifndef xmlReaderForMemory
extern __typeof (xmlReaderForMemory) xmlReaderForMemory__internal_alias __attribute((visibility("hidden")));
#define xmlReaderForMemory xmlReaderForMemory__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_READER_ENABLED)
#ifdef bottom_xmlreader
#undef xmlReaderNewDoc
extern __typeof (xmlReaderNewDoc) xmlReaderNewDoc __attribute((alias("xmlReaderNewDoc__internal_alias")));
#else
#ifndef xmlReaderNewDoc
extern __typeof (xmlReaderNewDoc) xmlReaderNewDoc__internal_alias __attribute((visibility("hidden")));
#define xmlReaderNewDoc xmlReaderNewDoc__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_READER_ENABLED)
#ifdef bottom_xmlreader
#undef xmlReaderNewFd
extern __typeof (xmlReaderNewFd) xmlReaderNewFd __attribute((alias("xmlReaderNewFd__internal_alias")));
#else
#ifndef xmlReaderNewFd
extern __typeof (xmlReaderNewFd) xmlReaderNewFd__internal_alias __attribute((visibility("hidden")));
#define xmlReaderNewFd xmlReaderNewFd__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_READER_ENABLED)
#ifdef bottom_xmlreader
#undef xmlReaderNewFile
extern __typeof (xmlReaderNewFile) xmlReaderNewFile __attribute((alias("xmlReaderNewFile__internal_alias")));
#else
#ifndef xmlReaderNewFile
extern __typeof (xmlReaderNewFile) xmlReaderNewFile__internal_alias __attribute((visibility("hidden")));
#define xmlReaderNewFile xmlReaderNewFile__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_READER_ENABLED)
#ifdef bottom_xmlreader
#undef xmlReaderNewIO
extern __typeof (xmlReaderNewIO) xmlReaderNewIO __attribute((alias("xmlReaderNewIO__internal_alias")));
#else
#ifndef xmlReaderNewIO
extern __typeof (xmlReaderNewIO) xmlReaderNewIO__internal_alias __attribute((visibility("hidden")));
#define xmlReaderNewIO xmlReaderNewIO__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_READER_ENABLED)
#ifdef bottom_xmlreader
#undef xmlReaderNewMemory
extern __typeof (xmlReaderNewMemory) xmlReaderNewMemory __attribute((alias("xmlReaderNewMemory__internal_alias")));
#else
#ifndef xmlReaderNewMemory
extern __typeof (xmlReaderNewMemory) xmlReaderNewMemory__internal_alias __attribute((visibility("hidden")));
#define xmlReaderNewMemory xmlReaderNewMemory__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_READER_ENABLED)
#ifdef bottom_xmlreader
#undef xmlReaderNewWalker
extern __typeof (xmlReaderNewWalker) xmlReaderNewWalker __attribute((alias("xmlReaderNewWalker__internal_alias")));
#else
#ifndef xmlReaderNewWalker
extern __typeof (xmlReaderNewWalker) xmlReaderNewWalker__internal_alias __attribute((visibility("hidden")));
#define xmlReaderNewWalker xmlReaderNewWalker__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_READER_ENABLED)
#ifdef bottom_xmlreader
#undef xmlReaderWalker
extern __typeof (xmlReaderWalker) xmlReaderWalker __attribute((alias("xmlReaderWalker__internal_alias")));
#else
#ifndef xmlReaderWalker
extern __typeof (xmlReaderWalker) xmlReaderWalker__internal_alias __attribute((visibility("hidden")));
#define xmlReaderWalker xmlReaderWalker__internal_alias
#endif
#endif
#endif

#ifdef bottom_xmlmemory
#undef xmlReallocLoc
extern __typeof (xmlReallocLoc) xmlReallocLoc __attribute((alias("xmlReallocLoc__internal_alias")));
#else
#ifndef xmlReallocLoc
extern __typeof (xmlReallocLoc) xmlReallocLoc__internal_alias __attribute((visibility("hidden")));
#define xmlReallocLoc xmlReallocLoc__internal_alias
#endif
#endif

#if defined(LIBXML_TREE_ENABLED)
#ifdef bottom_tree
#undef xmlReconciliateNs
extern __typeof (xmlReconciliateNs) xmlReconciliateNs __attribute((alias("xmlReconciliateNs__internal_alias")));
#else
#ifndef xmlReconciliateNs
extern __typeof (xmlReconciliateNs) xmlReconciliateNs__internal_alias __attribute((visibility("hidden")));
#define xmlReconciliateNs xmlReconciliateNs__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_SAX1_ENABLED)
#ifdef bottom_parser
#undef xmlRecoverDoc
extern __typeof (xmlRecoverDoc) xmlRecoverDoc __attribute((alias("xmlRecoverDoc__internal_alias")));
#else
#ifndef xmlRecoverDoc
extern __typeof (xmlRecoverDoc) xmlRecoverDoc__internal_alias __attribute((visibility("hidden")));
#define xmlRecoverDoc xmlRecoverDoc__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_SAX1_ENABLED)
#ifdef bottom_parser
#undef xmlRecoverFile
extern __typeof (xmlRecoverFile) xmlRecoverFile __attribute((alias("xmlRecoverFile__internal_alias")));
#else
#ifndef xmlRecoverFile
extern __typeof (xmlRecoverFile) xmlRecoverFile__internal_alias __attribute((visibility("hidden")));
#define xmlRecoverFile xmlRecoverFile__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_SAX1_ENABLED)
#ifdef bottom_parser
#undef xmlRecoverMemory
extern __typeof (xmlRecoverMemory) xmlRecoverMemory __attribute((alias("xmlRecoverMemory__internal_alias")));
#else
#ifndef xmlRecoverMemory
extern __typeof (xmlRecoverMemory) xmlRecoverMemory__internal_alias __attribute((visibility("hidden")));
#define xmlRecoverMemory xmlRecoverMemory__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_REGEXP_ENABLED)
#ifdef bottom_xmlregexp
#undef xmlRegExecErrInfo
extern __typeof (xmlRegExecErrInfo) xmlRegExecErrInfo __attribute((alias("xmlRegExecErrInfo__internal_alias")));
#else
#ifndef xmlRegExecErrInfo
extern __typeof (xmlRegExecErrInfo) xmlRegExecErrInfo__internal_alias __attribute((visibility("hidden")));
#define xmlRegExecErrInfo xmlRegExecErrInfo__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_REGEXP_ENABLED)
#ifdef bottom_xmlregexp
#undef xmlRegExecNextValues
extern __typeof (xmlRegExecNextValues) xmlRegExecNextValues __attribute((alias("xmlRegExecNextValues__internal_alias")));
#else
#ifndef xmlRegExecNextValues
extern __typeof (xmlRegExecNextValues) xmlRegExecNextValues__internal_alias __attribute((visibility("hidden")));
#define xmlRegExecNextValues xmlRegExecNextValues__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_REGEXP_ENABLED)
#ifdef bottom_xmlregexp
#undef xmlRegExecPushString
extern __typeof (xmlRegExecPushString) xmlRegExecPushString __attribute((alias("xmlRegExecPushString__internal_alias")));
#else
#ifndef xmlRegExecPushString
extern __typeof (xmlRegExecPushString) xmlRegExecPushString__internal_alias __attribute((visibility("hidden")));
#define xmlRegExecPushString xmlRegExecPushString__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_REGEXP_ENABLED)
#ifdef bottom_xmlregexp
#undef xmlRegExecPushString2
extern __typeof (xmlRegExecPushString2) xmlRegExecPushString2 __attribute((alias("xmlRegExecPushString2__internal_alias")));
#else
#ifndef xmlRegExecPushString2
extern __typeof (xmlRegExecPushString2) xmlRegExecPushString2__internal_alias __attribute((visibility("hidden")));
#define xmlRegExecPushString2 xmlRegExecPushString2__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_REGEXP_ENABLED)
#ifdef bottom_xmlregexp
#undef xmlRegFreeExecCtxt
extern __typeof (xmlRegFreeExecCtxt) xmlRegFreeExecCtxt __attribute((alias("xmlRegFreeExecCtxt__internal_alias")));
#else
#ifndef xmlRegFreeExecCtxt
extern __typeof (xmlRegFreeExecCtxt) xmlRegFreeExecCtxt__internal_alias __attribute((visibility("hidden")));
#define xmlRegFreeExecCtxt xmlRegFreeExecCtxt__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_REGEXP_ENABLED)
#ifdef bottom_xmlregexp
#undef xmlRegFreeRegexp
extern __typeof (xmlRegFreeRegexp) xmlRegFreeRegexp __attribute((alias("xmlRegFreeRegexp__internal_alias")));
#else
#ifndef xmlRegFreeRegexp
extern __typeof (xmlRegFreeRegexp) xmlRegFreeRegexp__internal_alias __attribute((visibility("hidden")));
#define xmlRegFreeRegexp xmlRegFreeRegexp__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_REGEXP_ENABLED)
#ifdef bottom_xmlregexp
#undef xmlRegNewExecCtxt
extern __typeof (xmlRegNewExecCtxt) xmlRegNewExecCtxt __attribute((alias("xmlRegNewExecCtxt__internal_alias")));
#else
#ifndef xmlRegNewExecCtxt
extern __typeof (xmlRegNewExecCtxt) xmlRegNewExecCtxt__internal_alias __attribute((visibility("hidden")));
#define xmlRegNewExecCtxt xmlRegNewExecCtxt__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_REGEXP_ENABLED)
#ifdef bottom_xmlregexp
#undef xmlRegexpCompile
extern __typeof (xmlRegexpCompile) xmlRegexpCompile __attribute((alias("xmlRegexpCompile__internal_alias")));
#else
#ifndef xmlRegexpCompile
extern __typeof (xmlRegexpCompile) xmlRegexpCompile__internal_alias __attribute((visibility("hidden")));
#define xmlRegexpCompile xmlRegexpCompile__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_REGEXP_ENABLED)
#ifdef bottom_xmlregexp
#undef xmlRegexpExec
extern __typeof (xmlRegexpExec) xmlRegexpExec __attribute((alias("xmlRegexpExec__internal_alias")));
#else
#ifndef xmlRegexpExec
extern __typeof (xmlRegexpExec) xmlRegexpExec__internal_alias __attribute((visibility("hidden")));
#define xmlRegexpExec xmlRegexpExec__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_REGEXP_ENABLED)
#ifdef bottom_xmlregexp
#undef xmlRegexpIsDeterminist
extern __typeof (xmlRegexpIsDeterminist) xmlRegexpIsDeterminist __attribute((alias("xmlRegexpIsDeterminist__internal_alias")));
#else
#ifndef xmlRegexpIsDeterminist
extern __typeof (xmlRegexpIsDeterminist) xmlRegexpIsDeterminist__internal_alias __attribute((visibility("hidden")));
#define xmlRegexpIsDeterminist xmlRegexpIsDeterminist__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_REGEXP_ENABLED)
#ifdef bottom_xmlregexp
#undef xmlRegexpPrint
extern __typeof (xmlRegexpPrint) xmlRegexpPrint __attribute((alias("xmlRegexpPrint__internal_alias")));
#else
#ifndef xmlRegexpPrint
extern __typeof (xmlRegexpPrint) xmlRegexpPrint__internal_alias __attribute((visibility("hidden")));
#define xmlRegexpPrint xmlRegexpPrint__internal_alias
#endif
#endif
#endif

#ifdef bottom_encoding
#undef xmlRegisterCharEncodingHandler
extern __typeof (xmlRegisterCharEncodingHandler) xmlRegisterCharEncodingHandler __attribute((alias("xmlRegisterCharEncodingHandler__internal_alias")));
#else
#ifndef xmlRegisterCharEncodingHandler
extern __typeof (xmlRegisterCharEncodingHandler) xmlRegisterCharEncodingHandler__internal_alias __attribute((visibility("hidden")));
#define xmlRegisterCharEncodingHandler xmlRegisterCharEncodingHandler__internal_alias
#endif
#endif

#ifdef bottom_xmlIO
#undef xmlRegisterDefaultInputCallbacks
extern __typeof (xmlRegisterDefaultInputCallbacks) xmlRegisterDefaultInputCallbacks __attribute((alias("xmlRegisterDefaultInputCallbacks__internal_alias")));
#else
#ifndef xmlRegisterDefaultInputCallbacks
extern __typeof (xmlRegisterDefaultInputCallbacks) xmlRegisterDefaultInputCallbacks__internal_alias __attribute((visibility("hidden")));
#define xmlRegisterDefaultInputCallbacks xmlRegisterDefaultInputCallbacks__internal_alias
#endif
#endif

#if defined(LIBXML_OUTPUT_ENABLED)
#ifdef bottom_xmlIO
#undef xmlRegisterDefaultOutputCallbacks
extern __typeof (xmlRegisterDefaultOutputCallbacks) xmlRegisterDefaultOutputCallbacks __attribute((alias("xmlRegisterDefaultOutputCallbacks__internal_alias")));
#else
#ifndef xmlRegisterDefaultOutputCallbacks
extern __typeof (xmlRegisterDefaultOutputCallbacks) xmlRegisterDefaultOutputCallbacks__internal_alias __attribute((visibility("hidden")));
#define xmlRegisterDefaultOutputCallbacks xmlRegisterDefaultOutputCallbacks__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_OUTPUT_ENABLED) && defined(LIBXML_HTTP_ENABLED)
#ifdef bottom_xmlIO
#undef xmlRegisterHTTPPostCallbacks
extern __typeof (xmlRegisterHTTPPostCallbacks) xmlRegisterHTTPPostCallbacks __attribute((alias("xmlRegisterHTTPPostCallbacks__internal_alias")));
#else
#ifndef xmlRegisterHTTPPostCallbacks
extern __typeof (xmlRegisterHTTPPostCallbacks) xmlRegisterHTTPPostCallbacks__internal_alias __attribute((visibility("hidden")));
#define xmlRegisterHTTPPostCallbacks xmlRegisterHTTPPostCallbacks__internal_alias
#endif
#endif
#endif

#ifdef bottom_xmlIO
#undef xmlRegisterInputCallbacks
extern __typeof (xmlRegisterInputCallbacks) xmlRegisterInputCallbacks __attribute((alias("xmlRegisterInputCallbacks__internal_alias")));
#else
#ifndef xmlRegisterInputCallbacks
extern __typeof (xmlRegisterInputCallbacks) xmlRegisterInputCallbacks__internal_alias __attribute((visibility("hidden")));
#define xmlRegisterInputCallbacks xmlRegisterInputCallbacks__internal_alias
#endif
#endif

#ifdef bottom_globals
#undef xmlRegisterNodeDefault
extern __typeof (xmlRegisterNodeDefault) xmlRegisterNodeDefault __attribute((alias("xmlRegisterNodeDefault__internal_alias")));
#else
#ifndef xmlRegisterNodeDefault
extern __typeof (xmlRegisterNodeDefault) xmlRegisterNodeDefault__internal_alias __attribute((visibility("hidden")));
#define xmlRegisterNodeDefault xmlRegisterNodeDefault__internal_alias
#endif
#endif

#if defined(LIBXML_OUTPUT_ENABLED)
#ifdef bottom_xmlIO
#undef xmlRegisterOutputCallbacks
extern __typeof (xmlRegisterOutputCallbacks) xmlRegisterOutputCallbacks __attribute((alias("xmlRegisterOutputCallbacks__internal_alias")));
#else
#ifndef xmlRegisterOutputCallbacks
extern __typeof (xmlRegisterOutputCallbacks) xmlRegisterOutputCallbacks__internal_alias __attribute((visibility("hidden")));
#define xmlRegisterOutputCallbacks xmlRegisterOutputCallbacks__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_SCHEMAS_ENABLED)
#ifdef bottom_relaxng
#undef xmlRelaxNGCleanupTypes
extern __typeof (xmlRelaxNGCleanupTypes) xmlRelaxNGCleanupTypes __attribute((alias("xmlRelaxNGCleanupTypes__internal_alias")));
#else
#ifndef xmlRelaxNGCleanupTypes
extern __typeof (xmlRelaxNGCleanupTypes) xmlRelaxNGCleanupTypes__internal_alias __attribute((visibility("hidden")));
#define xmlRelaxNGCleanupTypes xmlRelaxNGCleanupTypes__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_SCHEMAS_ENABLED) && defined(LIBXML_OUTPUT_ENABLED)
#ifdef bottom_relaxng
#undef xmlRelaxNGDump
extern __typeof (xmlRelaxNGDump) xmlRelaxNGDump __attribute((alias("xmlRelaxNGDump__internal_alias")));
#else
#ifndef xmlRelaxNGDump
extern __typeof (xmlRelaxNGDump) xmlRelaxNGDump__internal_alias __attribute((visibility("hidden")));
#define xmlRelaxNGDump xmlRelaxNGDump__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_SCHEMAS_ENABLED) && defined(LIBXML_OUTPUT_ENABLED)
#ifdef bottom_relaxng
#undef xmlRelaxNGDumpTree
extern __typeof (xmlRelaxNGDumpTree) xmlRelaxNGDumpTree __attribute((alias("xmlRelaxNGDumpTree__internal_alias")));
#else
#ifndef xmlRelaxNGDumpTree
extern __typeof (xmlRelaxNGDumpTree) xmlRelaxNGDumpTree__internal_alias __attribute((visibility("hidden")));
#define xmlRelaxNGDumpTree xmlRelaxNGDumpTree__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_SCHEMAS_ENABLED)
#ifdef bottom_relaxng
#undef xmlRelaxNGFree
extern __typeof (xmlRelaxNGFree) xmlRelaxNGFree __attribute((alias("xmlRelaxNGFree__internal_alias")));
#else
#ifndef xmlRelaxNGFree
extern __typeof (xmlRelaxNGFree) xmlRelaxNGFree__internal_alias __attribute((visibility("hidden")));
#define xmlRelaxNGFree xmlRelaxNGFree__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_SCHEMAS_ENABLED)
#ifdef bottom_relaxng
#undef xmlRelaxNGFreeParserCtxt
extern __typeof (xmlRelaxNGFreeParserCtxt) xmlRelaxNGFreeParserCtxt __attribute((alias("xmlRelaxNGFreeParserCtxt__internal_alias")));
#else
#ifndef xmlRelaxNGFreeParserCtxt
extern __typeof (xmlRelaxNGFreeParserCtxt) xmlRelaxNGFreeParserCtxt__internal_alias __attribute((visibility("hidden")));
#define xmlRelaxNGFreeParserCtxt xmlRelaxNGFreeParserCtxt__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_SCHEMAS_ENABLED)
#ifdef bottom_relaxng
#undef xmlRelaxNGFreeValidCtxt
extern __typeof (xmlRelaxNGFreeValidCtxt) xmlRelaxNGFreeValidCtxt __attribute((alias("xmlRelaxNGFreeValidCtxt__internal_alias")));
#else
#ifndef xmlRelaxNGFreeValidCtxt
extern __typeof (xmlRelaxNGFreeValidCtxt) xmlRelaxNGFreeValidCtxt__internal_alias __attribute((visibility("hidden")));
#define xmlRelaxNGFreeValidCtxt xmlRelaxNGFreeValidCtxt__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_SCHEMAS_ENABLED)
#ifdef bottom_relaxng
#undef xmlRelaxNGGetParserErrors
extern __typeof (xmlRelaxNGGetParserErrors) xmlRelaxNGGetParserErrors __attribute((alias("xmlRelaxNGGetParserErrors__internal_alias")));
#else
#ifndef xmlRelaxNGGetParserErrors
extern __typeof (xmlRelaxNGGetParserErrors) xmlRelaxNGGetParserErrors__internal_alias __attribute((visibility("hidden")));
#define xmlRelaxNGGetParserErrors xmlRelaxNGGetParserErrors__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_SCHEMAS_ENABLED)
#ifdef bottom_relaxng
#undef xmlRelaxNGGetValidErrors
extern __typeof (xmlRelaxNGGetValidErrors) xmlRelaxNGGetValidErrors __attribute((alias("xmlRelaxNGGetValidErrors__internal_alias")));
#else
#ifndef xmlRelaxNGGetValidErrors
extern __typeof (xmlRelaxNGGetValidErrors) xmlRelaxNGGetValidErrors__internal_alias __attribute((visibility("hidden")));
#define xmlRelaxNGGetValidErrors xmlRelaxNGGetValidErrors__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_SCHEMAS_ENABLED)
#ifdef bottom_relaxng
#undef xmlRelaxNGInitTypes
extern __typeof (xmlRelaxNGInitTypes) xmlRelaxNGInitTypes __attribute((alias("xmlRelaxNGInitTypes__internal_alias")));
#else
#ifndef xmlRelaxNGInitTypes
extern __typeof (xmlRelaxNGInitTypes) xmlRelaxNGInitTypes__internal_alias __attribute((visibility("hidden")));
#define xmlRelaxNGInitTypes xmlRelaxNGInitTypes__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_SCHEMAS_ENABLED)
#ifdef bottom_relaxng
#undef xmlRelaxNGNewDocParserCtxt
extern __typeof (xmlRelaxNGNewDocParserCtxt) xmlRelaxNGNewDocParserCtxt __attribute((alias("xmlRelaxNGNewDocParserCtxt__internal_alias")));
#else
#ifndef xmlRelaxNGNewDocParserCtxt
extern __typeof (xmlRelaxNGNewDocParserCtxt) xmlRelaxNGNewDocParserCtxt__internal_alias __attribute((visibility("hidden")));
#define xmlRelaxNGNewDocParserCtxt xmlRelaxNGNewDocParserCtxt__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_SCHEMAS_ENABLED)
#ifdef bottom_relaxng
#undef xmlRelaxNGNewMemParserCtxt
extern __typeof (xmlRelaxNGNewMemParserCtxt) xmlRelaxNGNewMemParserCtxt __attribute((alias("xmlRelaxNGNewMemParserCtxt__internal_alias")));
#else
#ifndef xmlRelaxNGNewMemParserCtxt
extern __typeof (xmlRelaxNGNewMemParserCtxt) xmlRelaxNGNewMemParserCtxt__internal_alias __attribute((visibility("hidden")));
#define xmlRelaxNGNewMemParserCtxt xmlRelaxNGNewMemParserCtxt__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_SCHEMAS_ENABLED)
#ifdef bottom_relaxng
#undef xmlRelaxNGNewParserCtxt
extern __typeof (xmlRelaxNGNewParserCtxt) xmlRelaxNGNewParserCtxt __attribute((alias("xmlRelaxNGNewParserCtxt__internal_alias")));
#else
#ifndef xmlRelaxNGNewParserCtxt
extern __typeof (xmlRelaxNGNewParserCtxt) xmlRelaxNGNewParserCtxt__internal_alias __attribute((visibility("hidden")));
#define xmlRelaxNGNewParserCtxt xmlRelaxNGNewParserCtxt__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_SCHEMAS_ENABLED)
#ifdef bottom_relaxng
#undef xmlRelaxNGNewValidCtxt
extern __typeof (xmlRelaxNGNewValidCtxt) xmlRelaxNGNewValidCtxt __attribute((alias("xmlRelaxNGNewValidCtxt__internal_alias")));
#else
#ifndef xmlRelaxNGNewValidCtxt
extern __typeof (xmlRelaxNGNewValidCtxt) xmlRelaxNGNewValidCtxt__internal_alias __attribute((visibility("hidden")));
#define xmlRelaxNGNewValidCtxt xmlRelaxNGNewValidCtxt__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_SCHEMAS_ENABLED)
#ifdef bottom_relaxng
#undef xmlRelaxNGParse
extern __typeof (xmlRelaxNGParse) xmlRelaxNGParse __attribute((alias("xmlRelaxNGParse__internal_alias")));
#else
#ifndef xmlRelaxNGParse
extern __typeof (xmlRelaxNGParse) xmlRelaxNGParse__internal_alias __attribute((visibility("hidden")));
#define xmlRelaxNGParse xmlRelaxNGParse__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_SCHEMAS_ENABLED)
#ifdef bottom_relaxng
#undef xmlRelaxNGSetParserErrors
extern __typeof (xmlRelaxNGSetParserErrors) xmlRelaxNGSetParserErrors __attribute((alias("xmlRelaxNGSetParserErrors__internal_alias")));
#else
#ifndef xmlRelaxNGSetParserErrors
extern __typeof (xmlRelaxNGSetParserErrors) xmlRelaxNGSetParserErrors__internal_alias __attribute((visibility("hidden")));
#define xmlRelaxNGSetParserErrors xmlRelaxNGSetParserErrors__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_SCHEMAS_ENABLED)
#ifdef bottom_relaxng
#undef xmlRelaxNGSetValidErrors
extern __typeof (xmlRelaxNGSetValidErrors) xmlRelaxNGSetValidErrors __attribute((alias("xmlRelaxNGSetValidErrors__internal_alias")));
#else
#ifndef xmlRelaxNGSetValidErrors
extern __typeof (xmlRelaxNGSetValidErrors) xmlRelaxNGSetValidErrors__internal_alias __attribute((visibility("hidden")));
#define xmlRelaxNGSetValidErrors xmlRelaxNGSetValidErrors__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_SCHEMAS_ENABLED)
#ifdef bottom_relaxng
#undef xmlRelaxNGSetValidStructuredErrors
extern __typeof (xmlRelaxNGSetValidStructuredErrors) xmlRelaxNGSetValidStructuredErrors __attribute((alias("xmlRelaxNGSetValidStructuredErrors__internal_alias")));
#else
#ifndef xmlRelaxNGSetValidStructuredErrors
extern __typeof (xmlRelaxNGSetValidStructuredErrors) xmlRelaxNGSetValidStructuredErrors__internal_alias __attribute((visibility("hidden")));
#define xmlRelaxNGSetValidStructuredErrors xmlRelaxNGSetValidStructuredErrors__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_SCHEMAS_ENABLED)
#ifdef bottom_relaxng
#undef xmlRelaxNGValidateDoc
extern __typeof (xmlRelaxNGValidateDoc) xmlRelaxNGValidateDoc __attribute((alias("xmlRelaxNGValidateDoc__internal_alias")));
#else
#ifndef xmlRelaxNGValidateDoc
extern __typeof (xmlRelaxNGValidateDoc) xmlRelaxNGValidateDoc__internal_alias __attribute((visibility("hidden")));
#define xmlRelaxNGValidateDoc xmlRelaxNGValidateDoc__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_SCHEMAS_ENABLED)
#ifdef bottom_relaxng
#undef xmlRelaxNGValidateFullElement
extern __typeof (xmlRelaxNGValidateFullElement) xmlRelaxNGValidateFullElement __attribute((alias("xmlRelaxNGValidateFullElement__internal_alias")));
#else
#ifndef xmlRelaxNGValidateFullElement
extern __typeof (xmlRelaxNGValidateFullElement) xmlRelaxNGValidateFullElement__internal_alias __attribute((visibility("hidden")));
#define xmlRelaxNGValidateFullElement xmlRelaxNGValidateFullElement__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_SCHEMAS_ENABLED)
#ifdef bottom_relaxng
#undef xmlRelaxNGValidatePopElement
extern __typeof (xmlRelaxNGValidatePopElement) xmlRelaxNGValidatePopElement __attribute((alias("xmlRelaxNGValidatePopElement__internal_alias")));
#else
#ifndef xmlRelaxNGValidatePopElement
extern __typeof (xmlRelaxNGValidatePopElement) xmlRelaxNGValidatePopElement__internal_alias __attribute((visibility("hidden")));
#define xmlRelaxNGValidatePopElement xmlRelaxNGValidatePopElement__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_SCHEMAS_ENABLED)
#ifdef bottom_relaxng
#undef xmlRelaxNGValidatePushCData
extern __typeof (xmlRelaxNGValidatePushCData) xmlRelaxNGValidatePushCData __attribute((alias("xmlRelaxNGValidatePushCData__internal_alias")));
#else
#ifndef xmlRelaxNGValidatePushCData
extern __typeof (xmlRelaxNGValidatePushCData) xmlRelaxNGValidatePushCData__internal_alias __attribute((visibility("hidden")));
#define xmlRelaxNGValidatePushCData xmlRelaxNGValidatePushCData__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_SCHEMAS_ENABLED)
#ifdef bottom_relaxng
#undef xmlRelaxNGValidatePushElement
extern __typeof (xmlRelaxNGValidatePushElement) xmlRelaxNGValidatePushElement __attribute((alias("xmlRelaxNGValidatePushElement__internal_alias")));
#else
#ifndef xmlRelaxNGValidatePushElement
extern __typeof (xmlRelaxNGValidatePushElement) xmlRelaxNGValidatePushElement__internal_alias __attribute((visibility("hidden")));
#define xmlRelaxNGValidatePushElement xmlRelaxNGValidatePushElement__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_SCHEMAS_ENABLED)
#ifdef bottom_relaxng
#undef xmlRelaxParserSetFlag
extern __typeof (xmlRelaxParserSetFlag) xmlRelaxParserSetFlag __attribute((alias("xmlRelaxParserSetFlag__internal_alias")));
#else
#ifndef xmlRelaxParserSetFlag
extern __typeof (xmlRelaxParserSetFlag) xmlRelaxParserSetFlag__internal_alias __attribute((visibility("hidden")));
#define xmlRelaxParserSetFlag xmlRelaxParserSetFlag__internal_alias
#endif
#endif
#endif

#ifdef bottom_valid
#undef xmlRemoveID
extern __typeof (xmlRemoveID) xmlRemoveID __attribute((alias("xmlRemoveID__internal_alias")));
#else
#ifndef xmlRemoveID
extern __typeof (xmlRemoveID) xmlRemoveID__internal_alias __attribute((visibility("hidden")));
#define xmlRemoveID xmlRemoveID__internal_alias
#endif
#endif

#if defined(LIBXML_TREE_ENABLED)
#ifdef bottom_tree
#undef xmlRemoveProp
extern __typeof (xmlRemoveProp) xmlRemoveProp __attribute((alias("xmlRemoveProp__internal_alias")));
#else
#ifndef xmlRemoveProp
extern __typeof (xmlRemoveProp) xmlRemoveProp__internal_alias __attribute((visibility("hidden")));
#define xmlRemoveProp xmlRemoveProp__internal_alias
#endif
#endif
#endif

#ifdef bottom_valid
#undef xmlRemoveRef
extern __typeof (xmlRemoveRef) xmlRemoveRef __attribute((alias("xmlRemoveRef__internal_alias")));
#else
#ifndef xmlRemoveRef
extern __typeof (xmlRemoveRef) xmlRemoveRef__internal_alias __attribute((visibility("hidden")));
#define xmlRemoveRef xmlRemoveRef__internal_alias
#endif
#endif

#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_WRITER_ENABLED)
#ifdef bottom_tree
#undef xmlReplaceNode
extern __typeof (xmlReplaceNode) xmlReplaceNode __attribute((alias("xmlReplaceNode__internal_alias")));
#else
#ifndef xmlReplaceNode
extern __typeof (xmlReplaceNode) xmlReplaceNode__internal_alias __attribute((visibility("hidden")));
#define xmlReplaceNode xmlReplaceNode__internal_alias
#endif
#endif
#endif

#ifdef bottom_error
#undef xmlResetError
extern __typeof (xmlResetError) xmlResetError __attribute((alias("xmlResetError__internal_alias")));
#else
#ifndef xmlResetError
extern __typeof (xmlResetError) xmlResetError__internal_alias __attribute((visibility("hidden")));
#define xmlResetError xmlResetError__internal_alias
#endif
#endif

#ifdef bottom_error
#undef xmlResetLastError
extern __typeof (xmlResetLastError) xmlResetLastError __attribute((alias("xmlResetLastError__internal_alias")));
#else
#ifndef xmlResetLastError
extern __typeof (xmlResetLastError) xmlResetLastError__internal_alias __attribute((visibility("hidden")));
#define xmlResetLastError xmlResetLastError__internal_alias
#endif
#endif

#ifdef bottom_SAX2
#undef xmlSAX2AttributeDecl
extern __typeof (xmlSAX2AttributeDecl) xmlSAX2AttributeDecl __attribute((alias("xmlSAX2AttributeDecl__internal_alias")));
#else
#ifndef xmlSAX2AttributeDecl
extern __typeof (xmlSAX2AttributeDecl) xmlSAX2AttributeDecl__internal_alias __attribute((visibility("hidden")));
#define xmlSAX2AttributeDecl xmlSAX2AttributeDecl__internal_alias
#endif
#endif

#ifdef bottom_SAX2
#undef xmlSAX2CDataBlock
extern __typeof (xmlSAX2CDataBlock) xmlSAX2CDataBlock __attribute((alias("xmlSAX2CDataBlock__internal_alias")));
#else
#ifndef xmlSAX2CDataBlock
extern __typeof (xmlSAX2CDataBlock) xmlSAX2CDataBlock__internal_alias __attribute((visibility("hidden")));
#define xmlSAX2CDataBlock xmlSAX2CDataBlock__internal_alias
#endif
#endif

#ifdef bottom_SAX2
#undef xmlSAX2Characters
extern __typeof (xmlSAX2Characters) xmlSAX2Characters __attribute((alias("xmlSAX2Characters__internal_alias")));
#else
#ifndef xmlSAX2Characters
extern __typeof (xmlSAX2Characters) xmlSAX2Characters__internal_alias __attribute((visibility("hidden")));
#define xmlSAX2Characters xmlSAX2Characters__internal_alias
#endif
#endif

#ifdef bottom_SAX2
#undef xmlSAX2Comment
extern __typeof (xmlSAX2Comment) xmlSAX2Comment __attribute((alias("xmlSAX2Comment__internal_alias")));
#else
#ifndef xmlSAX2Comment
extern __typeof (xmlSAX2Comment) xmlSAX2Comment__internal_alias __attribute((visibility("hidden")));
#define xmlSAX2Comment xmlSAX2Comment__internal_alias
#endif
#endif

#ifdef bottom_SAX2
#undef xmlSAX2ElementDecl
extern __typeof (xmlSAX2ElementDecl) xmlSAX2ElementDecl __attribute((alias("xmlSAX2ElementDecl__internal_alias")));
#else
#ifndef xmlSAX2ElementDecl
extern __typeof (xmlSAX2ElementDecl) xmlSAX2ElementDecl__internal_alias __attribute((visibility("hidden")));
#define xmlSAX2ElementDecl xmlSAX2ElementDecl__internal_alias
#endif
#endif

#ifdef bottom_SAX2
#undef xmlSAX2EndDocument
extern __typeof (xmlSAX2EndDocument) xmlSAX2EndDocument __attribute((alias("xmlSAX2EndDocument__internal_alias")));
#else
#ifndef xmlSAX2EndDocument
extern __typeof (xmlSAX2EndDocument) xmlSAX2EndDocument__internal_alias __attribute((visibility("hidden")));
#define xmlSAX2EndDocument xmlSAX2EndDocument__internal_alias
#endif
#endif

#if defined(LIBXML_SAX1_ENABLED) || defined(LIBXML_HTML_ENABLED) || defined(LIBXML_WRITER_ENABLED) || defined(LIBXML_DOCB_ENABLED)
#ifdef bottom_SAX2
#undef xmlSAX2EndElement
extern __typeof (xmlSAX2EndElement) xmlSAX2EndElement __attribute((alias("xmlSAX2EndElement__internal_alias")));
#else
#ifndef xmlSAX2EndElement
extern __typeof (xmlSAX2EndElement) xmlSAX2EndElement__internal_alias __attribute((visibility("hidden")));
#define xmlSAX2EndElement xmlSAX2EndElement__internal_alias
#endif
#endif
#endif

#ifdef bottom_SAX2
#undef xmlSAX2EndElementNs
extern __typeof (xmlSAX2EndElementNs) xmlSAX2EndElementNs __attribute((alias("xmlSAX2EndElementNs__internal_alias")));
#else
#ifndef xmlSAX2EndElementNs
extern __typeof (xmlSAX2EndElementNs) xmlSAX2EndElementNs__internal_alias __attribute((visibility("hidden")));
#define xmlSAX2EndElementNs xmlSAX2EndElementNs__internal_alias
#endif
#endif

#ifdef bottom_SAX2
#undef xmlSAX2EntityDecl
extern __typeof (xmlSAX2EntityDecl) xmlSAX2EntityDecl __attribute((alias("xmlSAX2EntityDecl__internal_alias")));
#else
#ifndef xmlSAX2EntityDecl
extern __typeof (xmlSAX2EntityDecl) xmlSAX2EntityDecl__internal_alias __attribute((visibility("hidden")));
#define xmlSAX2EntityDecl xmlSAX2EntityDecl__internal_alias
#endif
#endif

#ifdef bottom_SAX2
#undef xmlSAX2ExternalSubset
extern __typeof (xmlSAX2ExternalSubset) xmlSAX2ExternalSubset __attribute((alias("xmlSAX2ExternalSubset__internal_alias")));
#else
#ifndef xmlSAX2ExternalSubset
extern __typeof (xmlSAX2ExternalSubset) xmlSAX2ExternalSubset__internal_alias __attribute((visibility("hidden")));
#define xmlSAX2ExternalSubset xmlSAX2ExternalSubset__internal_alias
#endif
#endif

#ifdef bottom_SAX2
#undef xmlSAX2GetColumnNumber
extern __typeof (xmlSAX2GetColumnNumber) xmlSAX2GetColumnNumber __attribute((alias("xmlSAX2GetColumnNumber__internal_alias")));
#else
#ifndef xmlSAX2GetColumnNumber
extern __typeof (xmlSAX2GetColumnNumber) xmlSAX2GetColumnNumber__internal_alias __attribute((visibility("hidden")));
#define xmlSAX2GetColumnNumber xmlSAX2GetColumnNumber__internal_alias
#endif
#endif

#ifdef bottom_SAX2
#undef xmlSAX2GetEntity
extern __typeof (xmlSAX2GetEntity) xmlSAX2GetEntity __attribute((alias("xmlSAX2GetEntity__internal_alias")));
#else
#ifndef xmlSAX2GetEntity
extern __typeof (xmlSAX2GetEntity) xmlSAX2GetEntity__internal_alias __attribute((visibility("hidden")));
#define xmlSAX2GetEntity xmlSAX2GetEntity__internal_alias
#endif
#endif

#ifdef bottom_SAX2
#undef xmlSAX2GetLineNumber
extern __typeof (xmlSAX2GetLineNumber) xmlSAX2GetLineNumber __attribute((alias("xmlSAX2GetLineNumber__internal_alias")));
#else
#ifndef xmlSAX2GetLineNumber
extern __typeof (xmlSAX2GetLineNumber) xmlSAX2GetLineNumber__internal_alias __attribute((visibility("hidden")));
#define xmlSAX2GetLineNumber xmlSAX2GetLineNumber__internal_alias
#endif
#endif

#ifdef bottom_SAX2
#undef xmlSAX2GetParameterEntity
extern __typeof (xmlSAX2GetParameterEntity) xmlSAX2GetParameterEntity __attribute((alias("xmlSAX2GetParameterEntity__internal_alias")));
#else
#ifndef xmlSAX2GetParameterEntity
extern __typeof (xmlSAX2GetParameterEntity) xmlSAX2GetParameterEntity__internal_alias __attribute((visibility("hidden")));
#define xmlSAX2GetParameterEntity xmlSAX2GetParameterEntity__internal_alias
#endif
#endif

#ifdef bottom_SAX2
#undef xmlSAX2GetPublicId
extern __typeof (xmlSAX2GetPublicId) xmlSAX2GetPublicId __attribute((alias("xmlSAX2GetPublicId__internal_alias")));
#else
#ifndef xmlSAX2GetPublicId
extern __typeof (xmlSAX2GetPublicId) xmlSAX2GetPublicId__internal_alias __attribute((visibility("hidden")));
#define xmlSAX2GetPublicId xmlSAX2GetPublicId__internal_alias
#endif
#endif

#ifdef bottom_SAX2
#undef xmlSAX2GetSystemId
extern __typeof (xmlSAX2GetSystemId) xmlSAX2GetSystemId __attribute((alias("xmlSAX2GetSystemId__internal_alias")));
#else
#ifndef xmlSAX2GetSystemId
extern __typeof (xmlSAX2GetSystemId) xmlSAX2GetSystemId__internal_alias __attribute((visibility("hidden")));
#define xmlSAX2GetSystemId xmlSAX2GetSystemId__internal_alias
#endif
#endif

#ifdef bottom_SAX2
#undef xmlSAX2HasExternalSubset
extern __typeof (xmlSAX2HasExternalSubset) xmlSAX2HasExternalSubset __attribute((alias("xmlSAX2HasExternalSubset__internal_alias")));
#else
#ifndef xmlSAX2HasExternalSubset
extern __typeof (xmlSAX2HasExternalSubset) xmlSAX2HasExternalSubset__internal_alias __attribute((visibility("hidden")));
#define xmlSAX2HasExternalSubset xmlSAX2HasExternalSubset__internal_alias
#endif
#endif

#ifdef bottom_SAX2
#undef xmlSAX2HasInternalSubset
extern __typeof (xmlSAX2HasInternalSubset) xmlSAX2HasInternalSubset __attribute((alias("xmlSAX2HasInternalSubset__internal_alias")));
#else
#ifndef xmlSAX2HasInternalSubset
extern __typeof (xmlSAX2HasInternalSubset) xmlSAX2HasInternalSubset__internal_alias __attribute((visibility("hidden")));
#define xmlSAX2HasInternalSubset xmlSAX2HasInternalSubset__internal_alias
#endif
#endif

#ifdef bottom_SAX2
#undef xmlSAX2IgnorableWhitespace
extern __typeof (xmlSAX2IgnorableWhitespace) xmlSAX2IgnorableWhitespace __attribute((alias("xmlSAX2IgnorableWhitespace__internal_alias")));
#else
#ifndef xmlSAX2IgnorableWhitespace
extern __typeof (xmlSAX2IgnorableWhitespace) xmlSAX2IgnorableWhitespace__internal_alias __attribute((visibility("hidden")));
#define xmlSAX2IgnorableWhitespace xmlSAX2IgnorableWhitespace__internal_alias
#endif
#endif

#ifdef bottom_SAX2
#undef xmlSAX2InitDefaultSAXHandler
extern __typeof (xmlSAX2InitDefaultSAXHandler) xmlSAX2InitDefaultSAXHandler __attribute((alias("xmlSAX2InitDefaultSAXHandler__internal_alias")));
#else
#ifndef xmlSAX2InitDefaultSAXHandler
extern __typeof (xmlSAX2InitDefaultSAXHandler) xmlSAX2InitDefaultSAXHandler__internal_alias __attribute((visibility("hidden")));
#define xmlSAX2InitDefaultSAXHandler xmlSAX2InitDefaultSAXHandler__internal_alias
#endif
#endif

#if defined(LIBXML_DOCB_ENABLED)
#ifdef bottom_SAX2
#undef xmlSAX2InitDocbDefaultSAXHandler
extern __typeof (xmlSAX2InitDocbDefaultSAXHandler) xmlSAX2InitDocbDefaultSAXHandler __attribute((alias("xmlSAX2InitDocbDefaultSAXHandler__internal_alias")));
#else
#ifndef xmlSAX2InitDocbDefaultSAXHandler
extern __typeof (xmlSAX2InitDocbDefaultSAXHandler) xmlSAX2InitDocbDefaultSAXHandler__internal_alias __attribute((visibility("hidden")));
#define xmlSAX2InitDocbDefaultSAXHandler xmlSAX2InitDocbDefaultSAXHandler__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_HTML_ENABLED)
#ifdef bottom_SAX2
#undef xmlSAX2InitHtmlDefaultSAXHandler
extern __typeof (xmlSAX2InitHtmlDefaultSAXHandler) xmlSAX2InitHtmlDefaultSAXHandler __attribute((alias("xmlSAX2InitHtmlDefaultSAXHandler__internal_alias")));
#else
#ifndef xmlSAX2InitHtmlDefaultSAXHandler
extern __typeof (xmlSAX2InitHtmlDefaultSAXHandler) xmlSAX2InitHtmlDefaultSAXHandler__internal_alias __attribute((visibility("hidden")));
#define xmlSAX2InitHtmlDefaultSAXHandler xmlSAX2InitHtmlDefaultSAXHandler__internal_alias
#endif
#endif
#endif

#ifdef bottom_SAX2
#undef xmlSAX2InternalSubset
extern __typeof (xmlSAX2InternalSubset) xmlSAX2InternalSubset __attribute((alias("xmlSAX2InternalSubset__internal_alias")));
#else
#ifndef xmlSAX2InternalSubset
extern __typeof (xmlSAX2InternalSubset) xmlSAX2InternalSubset__internal_alias __attribute((visibility("hidden")));
#define xmlSAX2InternalSubset xmlSAX2InternalSubset__internal_alias
#endif
#endif

#ifdef bottom_SAX2
#undef xmlSAX2IsStandalone
extern __typeof (xmlSAX2IsStandalone) xmlSAX2IsStandalone __attribute((alias("xmlSAX2IsStandalone__internal_alias")));
#else
#ifndef xmlSAX2IsStandalone
extern __typeof (xmlSAX2IsStandalone) xmlSAX2IsStandalone__internal_alias __attribute((visibility("hidden")));
#define xmlSAX2IsStandalone xmlSAX2IsStandalone__internal_alias
#endif
#endif

#ifdef bottom_SAX2
#undef xmlSAX2NotationDecl
extern __typeof (xmlSAX2NotationDecl) xmlSAX2NotationDecl __attribute((alias("xmlSAX2NotationDecl__internal_alias")));
#else
#ifndef xmlSAX2NotationDecl
extern __typeof (xmlSAX2NotationDecl) xmlSAX2NotationDecl__internal_alias __attribute((visibility("hidden")));
#define xmlSAX2NotationDecl xmlSAX2NotationDecl__internal_alias
#endif
#endif

#ifdef bottom_SAX2
#undef xmlSAX2ProcessingInstruction
extern __typeof (xmlSAX2ProcessingInstruction) xmlSAX2ProcessingInstruction __attribute((alias("xmlSAX2ProcessingInstruction__internal_alias")));
#else
#ifndef xmlSAX2ProcessingInstruction
extern __typeof (xmlSAX2ProcessingInstruction) xmlSAX2ProcessingInstruction__internal_alias __attribute((visibility("hidden")));
#define xmlSAX2ProcessingInstruction xmlSAX2ProcessingInstruction__internal_alias
#endif
#endif

#ifdef bottom_SAX2
#undef xmlSAX2Reference
extern __typeof (xmlSAX2Reference) xmlSAX2Reference __attribute((alias("xmlSAX2Reference__internal_alias")));
#else
#ifndef xmlSAX2Reference
extern __typeof (xmlSAX2Reference) xmlSAX2Reference__internal_alias __attribute((visibility("hidden")));
#define xmlSAX2Reference xmlSAX2Reference__internal_alias
#endif
#endif

#ifdef bottom_SAX2
#undef xmlSAX2ResolveEntity
extern __typeof (xmlSAX2ResolveEntity) xmlSAX2ResolveEntity __attribute((alias("xmlSAX2ResolveEntity__internal_alias")));
#else
#ifndef xmlSAX2ResolveEntity
extern __typeof (xmlSAX2ResolveEntity) xmlSAX2ResolveEntity__internal_alias __attribute((visibility("hidden")));
#define xmlSAX2ResolveEntity xmlSAX2ResolveEntity__internal_alias
#endif
#endif

#ifdef bottom_SAX2
#undef xmlSAX2SetDocumentLocator
extern __typeof (xmlSAX2SetDocumentLocator) xmlSAX2SetDocumentLocator __attribute((alias("xmlSAX2SetDocumentLocator__internal_alias")));
#else
#ifndef xmlSAX2SetDocumentLocator
extern __typeof (xmlSAX2SetDocumentLocator) xmlSAX2SetDocumentLocator__internal_alias __attribute((visibility("hidden")));
#define xmlSAX2SetDocumentLocator xmlSAX2SetDocumentLocator__internal_alias
#endif
#endif

#ifdef bottom_SAX2
#undef xmlSAX2StartDocument
extern __typeof (xmlSAX2StartDocument) xmlSAX2StartDocument __attribute((alias("xmlSAX2StartDocument__internal_alias")));
#else
#ifndef xmlSAX2StartDocument
extern __typeof (xmlSAX2StartDocument) xmlSAX2StartDocument__internal_alias __attribute((visibility("hidden")));
#define xmlSAX2StartDocument xmlSAX2StartDocument__internal_alias
#endif
#endif

#if defined(LIBXML_SAX1_ENABLED) || defined(LIBXML_HTML_ENABLED) || defined(LIBXML_WRITER_ENABLED) || defined(LIBXML_DOCB_ENABLED)
#ifdef bottom_SAX2
#undef xmlSAX2StartElement
extern __typeof (xmlSAX2StartElement) xmlSAX2StartElement __attribute((alias("xmlSAX2StartElement__internal_alias")));
#else
#ifndef xmlSAX2StartElement
extern __typeof (xmlSAX2StartElement) xmlSAX2StartElement__internal_alias __attribute((visibility("hidden")));
#define xmlSAX2StartElement xmlSAX2StartElement__internal_alias
#endif
#endif
#endif

#ifdef bottom_SAX2
#undef xmlSAX2StartElementNs
extern __typeof (xmlSAX2StartElementNs) xmlSAX2StartElementNs __attribute((alias("xmlSAX2StartElementNs__internal_alias")));
#else
#ifndef xmlSAX2StartElementNs
extern __typeof (xmlSAX2StartElementNs) xmlSAX2StartElementNs__internal_alias __attribute((visibility("hidden")));
#define xmlSAX2StartElementNs xmlSAX2StartElementNs__internal_alias
#endif
#endif

#ifdef bottom_SAX2
#undef xmlSAX2UnparsedEntityDecl
extern __typeof (xmlSAX2UnparsedEntityDecl) xmlSAX2UnparsedEntityDecl __attribute((alias("xmlSAX2UnparsedEntityDecl__internal_alias")));
#else
#ifndef xmlSAX2UnparsedEntityDecl
extern __typeof (xmlSAX2UnparsedEntityDecl) xmlSAX2UnparsedEntityDecl__internal_alias __attribute((visibility("hidden")));
#define xmlSAX2UnparsedEntityDecl xmlSAX2UnparsedEntityDecl__internal_alias
#endif
#endif

#if defined(LIBXML_SAX1_ENABLED)
#ifdef bottom_SAX2
#undef xmlSAXDefaultVersion
extern __typeof (xmlSAXDefaultVersion) xmlSAXDefaultVersion __attribute((alias("xmlSAXDefaultVersion__internal_alias")));
#else
#ifndef xmlSAXDefaultVersion
extern __typeof (xmlSAXDefaultVersion) xmlSAXDefaultVersion__internal_alias __attribute((visibility("hidden")));
#define xmlSAXDefaultVersion xmlSAXDefaultVersion__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_VALID_ENABLED)
#ifdef bottom_parser
#undef xmlSAXParseDTD
extern __typeof (xmlSAXParseDTD) xmlSAXParseDTD __attribute((alias("xmlSAXParseDTD__internal_alias")));
#else
#ifndef xmlSAXParseDTD
extern __typeof (xmlSAXParseDTD) xmlSAXParseDTD__internal_alias __attribute((visibility("hidden")));
#define xmlSAXParseDTD xmlSAXParseDTD__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_SAX1_ENABLED)
#ifdef bottom_parser
#undef xmlSAXParseDoc
extern __typeof (xmlSAXParseDoc) xmlSAXParseDoc __attribute((alias("xmlSAXParseDoc__internal_alias")));
#else
#ifndef xmlSAXParseDoc
extern __typeof (xmlSAXParseDoc) xmlSAXParseDoc__internal_alias __attribute((visibility("hidden")));
#define xmlSAXParseDoc xmlSAXParseDoc__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_SAX1_ENABLED)
#ifdef bottom_parser
#undef xmlSAXParseEntity
extern __typeof (xmlSAXParseEntity) xmlSAXParseEntity __attribute((alias("xmlSAXParseEntity__internal_alias")));
#else
#ifndef xmlSAXParseEntity
extern __typeof (xmlSAXParseEntity) xmlSAXParseEntity__internal_alias __attribute((visibility("hidden")));
#define xmlSAXParseEntity xmlSAXParseEntity__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_SAX1_ENABLED)
#ifdef bottom_parser
#undef xmlSAXParseFile
extern __typeof (xmlSAXParseFile) xmlSAXParseFile __attribute((alias("xmlSAXParseFile__internal_alias")));
#else
#ifndef xmlSAXParseFile
extern __typeof (xmlSAXParseFile) xmlSAXParseFile__internal_alias __attribute((visibility("hidden")));
#define xmlSAXParseFile xmlSAXParseFile__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_SAX1_ENABLED)
#ifdef bottom_parser
#undef xmlSAXParseFileWithData
extern __typeof (xmlSAXParseFileWithData) xmlSAXParseFileWithData __attribute((alias("xmlSAXParseFileWithData__internal_alias")));
#else
#ifndef xmlSAXParseFileWithData
extern __typeof (xmlSAXParseFileWithData) xmlSAXParseFileWithData__internal_alias __attribute((visibility("hidden")));
#define xmlSAXParseFileWithData xmlSAXParseFileWithData__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_SAX1_ENABLED)
#ifdef bottom_parser
#undef xmlSAXParseMemory
extern __typeof (xmlSAXParseMemory) xmlSAXParseMemory __attribute((alias("xmlSAXParseMemory__internal_alias")));
#else
#ifndef xmlSAXParseMemory
extern __typeof (xmlSAXParseMemory) xmlSAXParseMemory__internal_alias __attribute((visibility("hidden")));
#define xmlSAXParseMemory xmlSAXParseMemory__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_SAX1_ENABLED)
#ifdef bottom_parser
#undef xmlSAXParseMemoryWithData
extern __typeof (xmlSAXParseMemoryWithData) xmlSAXParseMemoryWithData __attribute((alias("xmlSAXParseMemoryWithData__internal_alias")));
#else
#ifndef xmlSAXParseMemoryWithData
extern __typeof (xmlSAXParseMemoryWithData) xmlSAXParseMemoryWithData__internal_alias __attribute((visibility("hidden")));
#define xmlSAXParseMemoryWithData xmlSAXParseMemoryWithData__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_SAX1_ENABLED)
#ifdef bottom_parser
#undef xmlSAXUserParseFile
extern __typeof (xmlSAXUserParseFile) xmlSAXUserParseFile __attribute((alias("xmlSAXUserParseFile__internal_alias")));
#else
#ifndef xmlSAXUserParseFile
extern __typeof (xmlSAXUserParseFile) xmlSAXUserParseFile__internal_alias __attribute((visibility("hidden")));
#define xmlSAXUserParseFile xmlSAXUserParseFile__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_SAX1_ENABLED)
#ifdef bottom_parser
#undef xmlSAXUserParseMemory
extern __typeof (xmlSAXUserParseMemory) xmlSAXUserParseMemory __attribute((alias("xmlSAXUserParseMemory__internal_alias")));
#else
#ifndef xmlSAXUserParseMemory
extern __typeof (xmlSAXUserParseMemory) xmlSAXUserParseMemory__internal_alias __attribute((visibility("hidden")));
#define xmlSAXUserParseMemory xmlSAXUserParseMemory__internal_alias
#endif
#endif
#endif

#ifdef bottom_SAX2
#undef xmlSAXVersion
extern __typeof (xmlSAXVersion) xmlSAXVersion __attribute((alias("xmlSAXVersion__internal_alias")));
#else
#ifndef xmlSAXVersion
extern __typeof (xmlSAXVersion) xmlSAXVersion__internal_alias __attribute((visibility("hidden")));
#define xmlSAXVersion xmlSAXVersion__internal_alias
#endif
#endif

#if defined(LIBXML_OUTPUT_ENABLED)
#ifdef bottom_xmlsave
#undef xmlSaveClose
extern __typeof (xmlSaveClose) xmlSaveClose __attribute((alias("xmlSaveClose__internal_alias")));
#else
#ifndef xmlSaveClose
extern __typeof (xmlSaveClose) xmlSaveClose__internal_alias __attribute((visibility("hidden")));
#define xmlSaveClose xmlSaveClose__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_OUTPUT_ENABLED)
#ifdef bottom_xmlsave
#undef xmlSaveDoc
extern __typeof (xmlSaveDoc) xmlSaveDoc __attribute((alias("xmlSaveDoc__internal_alias")));
#else
#ifndef xmlSaveDoc
extern __typeof (xmlSaveDoc) xmlSaveDoc__internal_alias __attribute((visibility("hidden")));
#define xmlSaveDoc xmlSaveDoc__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_OUTPUT_ENABLED)
#ifdef bottom_xmlsave
#undef xmlSaveFile
extern __typeof (xmlSaveFile) xmlSaveFile __attribute((alias("xmlSaveFile__internal_alias")));
#else
#ifndef xmlSaveFile
extern __typeof (xmlSaveFile) xmlSaveFile__internal_alias __attribute((visibility("hidden")));
#define xmlSaveFile xmlSaveFile__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_OUTPUT_ENABLED)
#ifdef bottom_xmlsave
#undef xmlSaveFileEnc
extern __typeof (xmlSaveFileEnc) xmlSaveFileEnc __attribute((alias("xmlSaveFileEnc__internal_alias")));
#else
#ifndef xmlSaveFileEnc
extern __typeof (xmlSaveFileEnc) xmlSaveFileEnc__internal_alias __attribute((visibility("hidden")));
#define xmlSaveFileEnc xmlSaveFileEnc__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_OUTPUT_ENABLED)
#ifdef bottom_xmlsave
#undef xmlSaveFileTo
extern __typeof (xmlSaveFileTo) xmlSaveFileTo __attribute((alias("xmlSaveFileTo__internal_alias")));
#else
#ifndef xmlSaveFileTo
extern __typeof (xmlSaveFileTo) xmlSaveFileTo__internal_alias __attribute((visibility("hidden")));
#define xmlSaveFileTo xmlSaveFileTo__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_OUTPUT_ENABLED)
#ifdef bottom_xmlsave
#undef xmlSaveFlush
extern __typeof (xmlSaveFlush) xmlSaveFlush __attribute((alias("xmlSaveFlush__internal_alias")));
#else
#ifndef xmlSaveFlush
extern __typeof (xmlSaveFlush) xmlSaveFlush__internal_alias __attribute((visibility("hidden")));
#define xmlSaveFlush xmlSaveFlush__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_OUTPUT_ENABLED)
#ifdef bottom_xmlsave
#undef xmlSaveFormatFile
extern __typeof (xmlSaveFormatFile) xmlSaveFormatFile __attribute((alias("xmlSaveFormatFile__internal_alias")));
#else
#ifndef xmlSaveFormatFile
extern __typeof (xmlSaveFormatFile) xmlSaveFormatFile__internal_alias __attribute((visibility("hidden")));
#define xmlSaveFormatFile xmlSaveFormatFile__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_OUTPUT_ENABLED)
#ifdef bottom_xmlsave
#undef xmlSaveFormatFileEnc
extern __typeof (xmlSaveFormatFileEnc) xmlSaveFormatFileEnc __attribute((alias("xmlSaveFormatFileEnc__internal_alias")));
#else
#ifndef xmlSaveFormatFileEnc
extern __typeof (xmlSaveFormatFileEnc) xmlSaveFormatFileEnc__internal_alias __attribute((visibility("hidden")));
#define xmlSaveFormatFileEnc xmlSaveFormatFileEnc__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_OUTPUT_ENABLED)
#ifdef bottom_xmlsave
#undef xmlSaveFormatFileTo
extern __typeof (xmlSaveFormatFileTo) xmlSaveFormatFileTo __attribute((alias("xmlSaveFormatFileTo__internal_alias")));
#else
#ifndef xmlSaveFormatFileTo
extern __typeof (xmlSaveFormatFileTo) xmlSaveFormatFileTo__internal_alias __attribute((visibility("hidden")));
#define xmlSaveFormatFileTo xmlSaveFormatFileTo__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_OUTPUT_ENABLED)
#ifdef bottom_xmlsave
#undef xmlSaveSetAttrEscape
extern __typeof (xmlSaveSetAttrEscape) xmlSaveSetAttrEscape __attribute((alias("xmlSaveSetAttrEscape__internal_alias")));
#else
#ifndef xmlSaveSetAttrEscape
extern __typeof (xmlSaveSetAttrEscape) xmlSaveSetAttrEscape__internal_alias __attribute((visibility("hidden")));
#define xmlSaveSetAttrEscape xmlSaveSetAttrEscape__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_OUTPUT_ENABLED)
#ifdef bottom_xmlsave
#undef xmlSaveSetEscape
extern __typeof (xmlSaveSetEscape) xmlSaveSetEscape __attribute((alias("xmlSaveSetEscape__internal_alias")));
#else
#ifndef xmlSaveSetEscape
extern __typeof (xmlSaveSetEscape) xmlSaveSetEscape__internal_alias __attribute((visibility("hidden")));
#define xmlSaveSetEscape xmlSaveSetEscape__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_OUTPUT_ENABLED)
#ifdef bottom_xmlsave
#undef xmlSaveToFd
extern __typeof (xmlSaveToFd) xmlSaveToFd __attribute((alias("xmlSaveToFd__internal_alias")));
#else
#ifndef xmlSaveToFd
extern __typeof (xmlSaveToFd) xmlSaveToFd__internal_alias __attribute((visibility("hidden")));
#define xmlSaveToFd xmlSaveToFd__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_OUTPUT_ENABLED)
#ifdef bottom_xmlsave
#undef xmlSaveToFilename
extern __typeof (xmlSaveToFilename) xmlSaveToFilename __attribute((alias("xmlSaveToFilename__internal_alias")));
#else
#ifndef xmlSaveToFilename
extern __typeof (xmlSaveToFilename) xmlSaveToFilename__internal_alias __attribute((visibility("hidden")));
#define xmlSaveToFilename xmlSaveToFilename__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_OUTPUT_ENABLED)
#ifdef bottom_xmlsave
#undef xmlSaveToIO
extern __typeof (xmlSaveToIO) xmlSaveToIO __attribute((alias("xmlSaveToIO__internal_alias")));
#else
#ifndef xmlSaveToIO
extern __typeof (xmlSaveToIO) xmlSaveToIO__internal_alias __attribute((visibility("hidden")));
#define xmlSaveToIO xmlSaveToIO__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_OUTPUT_ENABLED)
#ifdef bottom_xmlsave
#undef xmlSaveTree
extern __typeof (xmlSaveTree) xmlSaveTree __attribute((alias("xmlSaveTree__internal_alias")));
#else
#ifndef xmlSaveTree
extern __typeof (xmlSaveTree) xmlSaveTree__internal_alias __attribute((visibility("hidden")));
#define xmlSaveTree xmlSaveTree__internal_alias
#endif
#endif
#endif

#ifdef bottom_uri
#undef xmlSaveUri
extern __typeof (xmlSaveUri) xmlSaveUri __attribute((alias("xmlSaveUri__internal_alias")));
#else
#ifndef xmlSaveUri
extern __typeof (xmlSaveUri) xmlSaveUri__internal_alias __attribute((visibility("hidden")));
#define xmlSaveUri xmlSaveUri__internal_alias
#endif
#endif

#if defined(LIBXML_LEGACY_ENABLED)
#ifdef bottom_legacy
#undef xmlScanName
extern __typeof (xmlScanName) xmlScanName __attribute((alias("xmlScanName__internal_alias")));
#else
#ifndef xmlScanName
extern __typeof (xmlScanName) xmlScanName__internal_alias __attribute((visibility("hidden")));
#define xmlScanName xmlScanName__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_SCHEMAS_ENABLED)
#ifdef bottom_xmlschemas
#undef xmlSchemaCheckFacet
extern __typeof (xmlSchemaCheckFacet) xmlSchemaCheckFacet __attribute((alias("xmlSchemaCheckFacet__internal_alias")));
#else
#ifndef xmlSchemaCheckFacet
extern __typeof (xmlSchemaCheckFacet) xmlSchemaCheckFacet__internal_alias __attribute((visibility("hidden")));
#define xmlSchemaCheckFacet xmlSchemaCheckFacet__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_SCHEMAS_ENABLED)
#ifdef bottom_xmlschemastypes
#undef xmlSchemaCleanupTypes
extern __typeof (xmlSchemaCleanupTypes) xmlSchemaCleanupTypes __attribute((alias("xmlSchemaCleanupTypes__internal_alias")));
#else
#ifndef xmlSchemaCleanupTypes
extern __typeof (xmlSchemaCleanupTypes) xmlSchemaCleanupTypes__internal_alias __attribute((visibility("hidden")));
#define xmlSchemaCleanupTypes xmlSchemaCleanupTypes__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_SCHEMAS_ENABLED)
#ifdef bottom_xmlschemastypes
#undef xmlSchemaCollapseString
extern __typeof (xmlSchemaCollapseString) xmlSchemaCollapseString __attribute((alias("xmlSchemaCollapseString__internal_alias")));
#else
#ifndef xmlSchemaCollapseString
extern __typeof (xmlSchemaCollapseString) xmlSchemaCollapseString__internal_alias __attribute((visibility("hidden")));
#define xmlSchemaCollapseString xmlSchemaCollapseString__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_SCHEMAS_ENABLED)
#ifdef bottom_xmlschemastypes
#undef xmlSchemaCompareValues
extern __typeof (xmlSchemaCompareValues) xmlSchemaCompareValues __attribute((alias("xmlSchemaCompareValues__internal_alias")));
#else
#ifndef xmlSchemaCompareValues
extern __typeof (xmlSchemaCompareValues) xmlSchemaCompareValues__internal_alias __attribute((visibility("hidden")));
#define xmlSchemaCompareValues xmlSchemaCompareValues__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_SCHEMAS_ENABLED)
#ifdef bottom_xmlschemastypes
#undef xmlSchemaCompareValuesWhtsp
extern __typeof (xmlSchemaCompareValuesWhtsp) xmlSchemaCompareValuesWhtsp __attribute((alias("xmlSchemaCompareValuesWhtsp__internal_alias")));
#else
#ifndef xmlSchemaCompareValuesWhtsp
extern __typeof (xmlSchemaCompareValuesWhtsp) xmlSchemaCompareValuesWhtsp__internal_alias __attribute((visibility("hidden")));
#define xmlSchemaCompareValuesWhtsp xmlSchemaCompareValuesWhtsp__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_SCHEMAS_ENABLED)
#ifdef bottom_xmlschemastypes
#undef xmlSchemaCopyValue
extern __typeof (xmlSchemaCopyValue) xmlSchemaCopyValue __attribute((alias("xmlSchemaCopyValue__internal_alias")));
#else
#ifndef xmlSchemaCopyValue
extern __typeof (xmlSchemaCopyValue) xmlSchemaCopyValue__internal_alias __attribute((visibility("hidden")));
#define xmlSchemaCopyValue xmlSchemaCopyValue__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_SCHEMAS_ENABLED) && defined(LIBXML_OUTPUT_ENABLED)
#ifdef bottom_xmlschemas
#undef xmlSchemaDump
extern __typeof (xmlSchemaDump) xmlSchemaDump __attribute((alias("xmlSchemaDump__internal_alias")));
#else
#ifndef xmlSchemaDump
extern __typeof (xmlSchemaDump) xmlSchemaDump__internal_alias __attribute((visibility("hidden")));
#define xmlSchemaDump xmlSchemaDump__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_SCHEMAS_ENABLED)
#ifdef bottom_xmlschemas
#undef xmlSchemaFree
extern __typeof (xmlSchemaFree) xmlSchemaFree __attribute((alias("xmlSchemaFree__internal_alias")));
#else
#ifndef xmlSchemaFree
extern __typeof (xmlSchemaFree) xmlSchemaFree__internal_alias __attribute((visibility("hidden")));
#define xmlSchemaFree xmlSchemaFree__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_SCHEMAS_ENABLED)
#ifdef bottom_xmlschemas
#undef xmlSchemaFreeFacet
extern __typeof (xmlSchemaFreeFacet) xmlSchemaFreeFacet __attribute((alias("xmlSchemaFreeFacet__internal_alias")));
#else
#ifndef xmlSchemaFreeFacet
extern __typeof (xmlSchemaFreeFacet) xmlSchemaFreeFacet__internal_alias __attribute((visibility("hidden")));
#define xmlSchemaFreeFacet xmlSchemaFreeFacet__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_SCHEMAS_ENABLED)
#ifdef bottom_xmlschemas
#undef xmlSchemaFreeParserCtxt
extern __typeof (xmlSchemaFreeParserCtxt) xmlSchemaFreeParserCtxt __attribute((alias("xmlSchemaFreeParserCtxt__internal_alias")));
#else
#ifndef xmlSchemaFreeParserCtxt
extern __typeof (xmlSchemaFreeParserCtxt) xmlSchemaFreeParserCtxt__internal_alias __attribute((visibility("hidden")));
#define xmlSchemaFreeParserCtxt xmlSchemaFreeParserCtxt__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_SCHEMAS_ENABLED)
#ifdef bottom_xmlschemas
#undef xmlSchemaFreeType
extern __typeof (xmlSchemaFreeType) xmlSchemaFreeType __attribute((alias("xmlSchemaFreeType__internal_alias")));
#else
#ifndef xmlSchemaFreeType
extern __typeof (xmlSchemaFreeType) xmlSchemaFreeType__internal_alias __attribute((visibility("hidden")));
#define xmlSchemaFreeType xmlSchemaFreeType__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_SCHEMAS_ENABLED)
#ifdef bottom_xmlschemas
#undef xmlSchemaFreeValidCtxt
extern __typeof (xmlSchemaFreeValidCtxt) xmlSchemaFreeValidCtxt __attribute((alias("xmlSchemaFreeValidCtxt__internal_alias")));
#else
#ifndef xmlSchemaFreeValidCtxt
extern __typeof (xmlSchemaFreeValidCtxt) xmlSchemaFreeValidCtxt__internal_alias __attribute((visibility("hidden")));
#define xmlSchemaFreeValidCtxt xmlSchemaFreeValidCtxt__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_SCHEMAS_ENABLED)
#ifdef bottom_xmlschemastypes
#undef xmlSchemaFreeValue
extern __typeof (xmlSchemaFreeValue) xmlSchemaFreeValue __attribute((alias("xmlSchemaFreeValue__internal_alias")));
#else
#ifndef xmlSchemaFreeValue
extern __typeof (xmlSchemaFreeValue) xmlSchemaFreeValue__internal_alias __attribute((visibility("hidden")));
#define xmlSchemaFreeValue xmlSchemaFreeValue__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_SCHEMAS_ENABLED)
#ifdef bottom_xmlschemas
#undef xmlSchemaFreeWildcard
extern __typeof (xmlSchemaFreeWildcard) xmlSchemaFreeWildcard __attribute((alias("xmlSchemaFreeWildcard__internal_alias")));
#else
#ifndef xmlSchemaFreeWildcard
extern __typeof (xmlSchemaFreeWildcard) xmlSchemaFreeWildcard__internal_alias __attribute((visibility("hidden")));
#define xmlSchemaFreeWildcard xmlSchemaFreeWildcard__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_SCHEMAS_ENABLED)
#ifdef bottom_xmlschemastypes
#undef xmlSchemaGetBuiltInListSimpleTypeItemType
extern __typeof (xmlSchemaGetBuiltInListSimpleTypeItemType) xmlSchemaGetBuiltInListSimpleTypeItemType __attribute((alias("xmlSchemaGetBuiltInListSimpleTypeItemType__internal_alias")));
#else
#ifndef xmlSchemaGetBuiltInListSimpleTypeItemType
extern __typeof (xmlSchemaGetBuiltInListSimpleTypeItemType) xmlSchemaGetBuiltInListSimpleTypeItemType__internal_alias __attribute((visibility("hidden")));
#define xmlSchemaGetBuiltInListSimpleTypeItemType xmlSchemaGetBuiltInListSimpleTypeItemType__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_SCHEMAS_ENABLED)
#ifdef bottom_xmlschemastypes
#undef xmlSchemaGetBuiltInType
extern __typeof (xmlSchemaGetBuiltInType) xmlSchemaGetBuiltInType __attribute((alias("xmlSchemaGetBuiltInType__internal_alias")));
#else
#ifndef xmlSchemaGetBuiltInType
extern __typeof (xmlSchemaGetBuiltInType) xmlSchemaGetBuiltInType__internal_alias __attribute((visibility("hidden")));
#define xmlSchemaGetBuiltInType xmlSchemaGetBuiltInType__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_SCHEMAS_ENABLED)
#ifdef bottom_xmlschemastypes
#undef xmlSchemaGetCanonValue
extern __typeof (xmlSchemaGetCanonValue) xmlSchemaGetCanonValue __attribute((alias("xmlSchemaGetCanonValue__internal_alias")));
#else
#ifndef xmlSchemaGetCanonValue
extern __typeof (xmlSchemaGetCanonValue) xmlSchemaGetCanonValue__internal_alias __attribute((visibility("hidden")));
#define xmlSchemaGetCanonValue xmlSchemaGetCanonValue__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_SCHEMAS_ENABLED)
#ifdef bottom_xmlschemastypes
#undef xmlSchemaGetCanonValueWhtsp
extern __typeof (xmlSchemaGetCanonValueWhtsp) xmlSchemaGetCanonValueWhtsp __attribute((alias("xmlSchemaGetCanonValueWhtsp__internal_alias")));
#else
#ifndef xmlSchemaGetCanonValueWhtsp
extern __typeof (xmlSchemaGetCanonValueWhtsp) xmlSchemaGetCanonValueWhtsp__internal_alias __attribute((visibility("hidden")));
#define xmlSchemaGetCanonValueWhtsp xmlSchemaGetCanonValueWhtsp__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_SCHEMAS_ENABLED)
#ifdef bottom_xmlschemastypes
#undef xmlSchemaGetFacetValueAsULong
extern __typeof (xmlSchemaGetFacetValueAsULong) xmlSchemaGetFacetValueAsULong __attribute((alias("xmlSchemaGetFacetValueAsULong__internal_alias")));
#else
#ifndef xmlSchemaGetFacetValueAsULong
extern __typeof (xmlSchemaGetFacetValueAsULong) xmlSchemaGetFacetValueAsULong__internal_alias __attribute((visibility("hidden")));
#define xmlSchemaGetFacetValueAsULong xmlSchemaGetFacetValueAsULong__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_SCHEMAS_ENABLED)
#ifdef bottom_xmlschemas
#undef xmlSchemaGetParserErrors
extern __typeof (xmlSchemaGetParserErrors) xmlSchemaGetParserErrors __attribute((alias("xmlSchemaGetParserErrors__internal_alias")));
#else
#ifndef xmlSchemaGetParserErrors
extern __typeof (xmlSchemaGetParserErrors) xmlSchemaGetParserErrors__internal_alias __attribute((visibility("hidden")));
#define xmlSchemaGetParserErrors xmlSchemaGetParserErrors__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_SCHEMAS_ENABLED)
#ifdef bottom_xmlschemastypes
#undef xmlSchemaGetPredefinedType
extern __typeof (xmlSchemaGetPredefinedType) xmlSchemaGetPredefinedType __attribute((alias("xmlSchemaGetPredefinedType__internal_alias")));
#else
#ifndef xmlSchemaGetPredefinedType
extern __typeof (xmlSchemaGetPredefinedType) xmlSchemaGetPredefinedType__internal_alias __attribute((visibility("hidden")));
#define xmlSchemaGetPredefinedType xmlSchemaGetPredefinedType__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_SCHEMAS_ENABLED)
#ifdef bottom_xmlschemastypes
#undef xmlSchemaGetValType
extern __typeof (xmlSchemaGetValType) xmlSchemaGetValType __attribute((alias("xmlSchemaGetValType__internal_alias")));
#else
#ifndef xmlSchemaGetValType
extern __typeof (xmlSchemaGetValType) xmlSchemaGetValType__internal_alias __attribute((visibility("hidden")));
#define xmlSchemaGetValType xmlSchemaGetValType__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_SCHEMAS_ENABLED)
#ifdef bottom_xmlschemas
#undef xmlSchemaGetValidErrors
extern __typeof (xmlSchemaGetValidErrors) xmlSchemaGetValidErrors __attribute((alias("xmlSchemaGetValidErrors__internal_alias")));
#else
#ifndef xmlSchemaGetValidErrors
extern __typeof (xmlSchemaGetValidErrors) xmlSchemaGetValidErrors__internal_alias __attribute((visibility("hidden")));
#define xmlSchemaGetValidErrors xmlSchemaGetValidErrors__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_SCHEMAS_ENABLED)
#ifdef bottom_xmlschemastypes
#undef xmlSchemaInitTypes
extern __typeof (xmlSchemaInitTypes) xmlSchemaInitTypes __attribute((alias("xmlSchemaInitTypes__internal_alias")));
#else
#ifndef xmlSchemaInitTypes
extern __typeof (xmlSchemaInitTypes) xmlSchemaInitTypes__internal_alias __attribute((visibility("hidden")));
#define xmlSchemaInitTypes xmlSchemaInitTypes__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_SCHEMAS_ENABLED)
#ifdef bottom_xmlschemastypes
#undef xmlSchemaIsBuiltInTypeFacet
extern __typeof (xmlSchemaIsBuiltInTypeFacet) xmlSchemaIsBuiltInTypeFacet __attribute((alias("xmlSchemaIsBuiltInTypeFacet__internal_alias")));
#else
#ifndef xmlSchemaIsBuiltInTypeFacet
extern __typeof (xmlSchemaIsBuiltInTypeFacet) xmlSchemaIsBuiltInTypeFacet__internal_alias __attribute((visibility("hidden")));
#define xmlSchemaIsBuiltInTypeFacet xmlSchemaIsBuiltInTypeFacet__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_SCHEMAS_ENABLED)
#ifdef bottom_xmlschemas
#undef xmlSchemaIsValid
extern __typeof (xmlSchemaIsValid) xmlSchemaIsValid __attribute((alias("xmlSchemaIsValid__internal_alias")));
#else
#ifndef xmlSchemaIsValid
extern __typeof (xmlSchemaIsValid) xmlSchemaIsValid__internal_alias __attribute((visibility("hidden")));
#define xmlSchemaIsValid xmlSchemaIsValid__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_SCHEMAS_ENABLED)
#ifdef bottom_xmlschemas
#undef xmlSchemaNewDocParserCtxt
extern __typeof (xmlSchemaNewDocParserCtxt) xmlSchemaNewDocParserCtxt __attribute((alias("xmlSchemaNewDocParserCtxt__internal_alias")));
#else
#ifndef xmlSchemaNewDocParserCtxt
extern __typeof (xmlSchemaNewDocParserCtxt) xmlSchemaNewDocParserCtxt__internal_alias __attribute((visibility("hidden")));
#define xmlSchemaNewDocParserCtxt xmlSchemaNewDocParserCtxt__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_SCHEMAS_ENABLED)
#ifdef bottom_xmlschemas
#undef xmlSchemaNewFacet
extern __typeof (xmlSchemaNewFacet) xmlSchemaNewFacet __attribute((alias("xmlSchemaNewFacet__internal_alias")));
#else
#ifndef xmlSchemaNewFacet
extern __typeof (xmlSchemaNewFacet) xmlSchemaNewFacet__internal_alias __attribute((visibility("hidden")));
#define xmlSchemaNewFacet xmlSchemaNewFacet__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_SCHEMAS_ENABLED)
#ifdef bottom_xmlschemas
#undef xmlSchemaNewMemParserCtxt
extern __typeof (xmlSchemaNewMemParserCtxt) xmlSchemaNewMemParserCtxt __attribute((alias("xmlSchemaNewMemParserCtxt__internal_alias")));
#else
#ifndef xmlSchemaNewMemParserCtxt
extern __typeof (xmlSchemaNewMemParserCtxt) xmlSchemaNewMemParserCtxt__internal_alias __attribute((visibility("hidden")));
#define xmlSchemaNewMemParserCtxt xmlSchemaNewMemParserCtxt__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_SCHEMAS_ENABLED)
#ifdef bottom_xmlschemastypes
#undef xmlSchemaNewNOTATIONValue
extern __typeof (xmlSchemaNewNOTATIONValue) xmlSchemaNewNOTATIONValue __attribute((alias("xmlSchemaNewNOTATIONValue__internal_alias")));
#else
#ifndef xmlSchemaNewNOTATIONValue
extern __typeof (xmlSchemaNewNOTATIONValue) xmlSchemaNewNOTATIONValue__internal_alias __attribute((visibility("hidden")));
#define xmlSchemaNewNOTATIONValue xmlSchemaNewNOTATIONValue__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_SCHEMAS_ENABLED)
#ifdef bottom_xmlschemas
#undef xmlSchemaNewParserCtxt
extern __typeof (xmlSchemaNewParserCtxt) xmlSchemaNewParserCtxt __attribute((alias("xmlSchemaNewParserCtxt__internal_alias")));
#else
#ifndef xmlSchemaNewParserCtxt
extern __typeof (xmlSchemaNewParserCtxt) xmlSchemaNewParserCtxt__internal_alias __attribute((visibility("hidden")));
#define xmlSchemaNewParserCtxt xmlSchemaNewParserCtxt__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_SCHEMAS_ENABLED)
#ifdef bottom_xmlschemastypes
#undef xmlSchemaNewQNameValue
extern __typeof (xmlSchemaNewQNameValue) xmlSchemaNewQNameValue __attribute((alias("xmlSchemaNewQNameValue__internal_alias")));
#else
#ifndef xmlSchemaNewQNameValue
extern __typeof (xmlSchemaNewQNameValue) xmlSchemaNewQNameValue__internal_alias __attribute((visibility("hidden")));
#define xmlSchemaNewQNameValue xmlSchemaNewQNameValue__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_SCHEMAS_ENABLED)
#ifdef bottom_xmlschemastypes
#undef xmlSchemaNewStringValue
extern __typeof (xmlSchemaNewStringValue) xmlSchemaNewStringValue __attribute((alias("xmlSchemaNewStringValue__internal_alias")));
#else
#ifndef xmlSchemaNewStringValue
extern __typeof (xmlSchemaNewStringValue) xmlSchemaNewStringValue__internal_alias __attribute((visibility("hidden")));
#define xmlSchemaNewStringValue xmlSchemaNewStringValue__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_SCHEMAS_ENABLED)
#ifdef bottom_xmlschemas
#undef xmlSchemaNewValidCtxt
extern __typeof (xmlSchemaNewValidCtxt) xmlSchemaNewValidCtxt __attribute((alias("xmlSchemaNewValidCtxt__internal_alias")));
#else
#ifndef xmlSchemaNewValidCtxt
extern __typeof (xmlSchemaNewValidCtxt) xmlSchemaNewValidCtxt__internal_alias __attribute((visibility("hidden")));
#define xmlSchemaNewValidCtxt xmlSchemaNewValidCtxt__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_SCHEMAS_ENABLED)
#ifdef bottom_xmlschemas
#undef xmlSchemaParse
extern __typeof (xmlSchemaParse) xmlSchemaParse __attribute((alias("xmlSchemaParse__internal_alias")));
#else
#ifndef xmlSchemaParse
extern __typeof (xmlSchemaParse) xmlSchemaParse__internal_alias __attribute((visibility("hidden")));
#define xmlSchemaParse xmlSchemaParse__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_SCHEMAS_ENABLED)
#ifdef bottom_xmlschemas
#undef xmlSchemaSAXPlug
extern __typeof (xmlSchemaSAXPlug) xmlSchemaSAXPlug __attribute((alias("xmlSchemaSAXPlug__internal_alias")));
#else
#ifndef xmlSchemaSAXPlug
extern __typeof (xmlSchemaSAXPlug) xmlSchemaSAXPlug__internal_alias __attribute((visibility("hidden")));
#define xmlSchemaSAXPlug xmlSchemaSAXPlug__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_SCHEMAS_ENABLED)
#ifdef bottom_xmlschemas
#undef xmlSchemaSAXUnplug
extern __typeof (xmlSchemaSAXUnplug) xmlSchemaSAXUnplug __attribute((alias("xmlSchemaSAXUnplug__internal_alias")));
#else
#ifndef xmlSchemaSAXUnplug
extern __typeof (xmlSchemaSAXUnplug) xmlSchemaSAXUnplug__internal_alias __attribute((visibility("hidden")));
#define xmlSchemaSAXUnplug xmlSchemaSAXUnplug__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_SCHEMAS_ENABLED)
#ifdef bottom_xmlschemas
#undef xmlSchemaSetParserErrors
extern __typeof (xmlSchemaSetParserErrors) xmlSchemaSetParserErrors __attribute((alias("xmlSchemaSetParserErrors__internal_alias")));
#else
#ifndef xmlSchemaSetParserErrors
extern __typeof (xmlSchemaSetParserErrors) xmlSchemaSetParserErrors__internal_alias __attribute((visibility("hidden")));
#define xmlSchemaSetParserErrors xmlSchemaSetParserErrors__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_SCHEMAS_ENABLED)
#ifdef bottom_xmlschemas
#undef xmlSchemaSetValidErrors
extern __typeof (xmlSchemaSetValidErrors) xmlSchemaSetValidErrors __attribute((alias("xmlSchemaSetValidErrors__internal_alias")));
#else
#ifndef xmlSchemaSetValidErrors
extern __typeof (xmlSchemaSetValidErrors) xmlSchemaSetValidErrors__internal_alias __attribute((visibility("hidden")));
#define xmlSchemaSetValidErrors xmlSchemaSetValidErrors__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_SCHEMAS_ENABLED)
#ifdef bottom_xmlschemas
#undef xmlSchemaSetValidOptions
extern __typeof (xmlSchemaSetValidOptions) xmlSchemaSetValidOptions __attribute((alias("xmlSchemaSetValidOptions__internal_alias")));
#else
#ifndef xmlSchemaSetValidOptions
extern __typeof (xmlSchemaSetValidOptions) xmlSchemaSetValidOptions__internal_alias __attribute((visibility("hidden")));
#define xmlSchemaSetValidOptions xmlSchemaSetValidOptions__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_SCHEMAS_ENABLED)
#ifdef bottom_xmlschemas
#undef xmlSchemaSetValidStructuredErrors
extern __typeof (xmlSchemaSetValidStructuredErrors) xmlSchemaSetValidStructuredErrors __attribute((alias("xmlSchemaSetValidStructuredErrors__internal_alias")));
#else
#ifndef xmlSchemaSetValidStructuredErrors
extern __typeof (xmlSchemaSetValidStructuredErrors) xmlSchemaSetValidStructuredErrors__internal_alias __attribute((visibility("hidden")));
#define xmlSchemaSetValidStructuredErrors xmlSchemaSetValidStructuredErrors__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_SCHEMAS_ENABLED)
#ifdef bottom_xmlschemastypes
#undef xmlSchemaValPredefTypeNode
extern __typeof (xmlSchemaValPredefTypeNode) xmlSchemaValPredefTypeNode __attribute((alias("xmlSchemaValPredefTypeNode__internal_alias")));
#else
#ifndef xmlSchemaValPredefTypeNode
extern __typeof (xmlSchemaValPredefTypeNode) xmlSchemaValPredefTypeNode__internal_alias __attribute((visibility("hidden")));
#define xmlSchemaValPredefTypeNode xmlSchemaValPredefTypeNode__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_SCHEMAS_ENABLED)
#ifdef bottom_xmlschemastypes
#undef xmlSchemaValPredefTypeNodeNoNorm
extern __typeof (xmlSchemaValPredefTypeNodeNoNorm) xmlSchemaValPredefTypeNodeNoNorm __attribute((alias("xmlSchemaValPredefTypeNodeNoNorm__internal_alias")));
#else
#ifndef xmlSchemaValPredefTypeNodeNoNorm
extern __typeof (xmlSchemaValPredefTypeNodeNoNorm) xmlSchemaValPredefTypeNodeNoNorm__internal_alias __attribute((visibility("hidden")));
#define xmlSchemaValPredefTypeNodeNoNorm xmlSchemaValPredefTypeNodeNoNorm__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_SCHEMAS_ENABLED)
#ifdef bottom_xmlschemas
#undef xmlSchemaValidCtxtGetOptions
extern __typeof (xmlSchemaValidCtxtGetOptions) xmlSchemaValidCtxtGetOptions __attribute((alias("xmlSchemaValidCtxtGetOptions__internal_alias")));
#else
#ifndef xmlSchemaValidCtxtGetOptions
extern __typeof (xmlSchemaValidCtxtGetOptions) xmlSchemaValidCtxtGetOptions__internal_alias __attribute((visibility("hidden")));
#define xmlSchemaValidCtxtGetOptions xmlSchemaValidCtxtGetOptions__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_SCHEMAS_ENABLED)
#ifdef bottom_xmlschemas
#undef xmlSchemaValidateDoc
extern __typeof (xmlSchemaValidateDoc) xmlSchemaValidateDoc __attribute((alias("xmlSchemaValidateDoc__internal_alias")));
#else
#ifndef xmlSchemaValidateDoc
extern __typeof (xmlSchemaValidateDoc) xmlSchemaValidateDoc__internal_alias __attribute((visibility("hidden")));
#define xmlSchemaValidateDoc xmlSchemaValidateDoc__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_SCHEMAS_ENABLED)
#ifdef bottom_xmlschemastypes
#undef xmlSchemaValidateFacet
extern __typeof (xmlSchemaValidateFacet) xmlSchemaValidateFacet __attribute((alias("xmlSchemaValidateFacet__internal_alias")));
#else
#ifndef xmlSchemaValidateFacet
extern __typeof (xmlSchemaValidateFacet) xmlSchemaValidateFacet__internal_alias __attribute((visibility("hidden")));
#define xmlSchemaValidateFacet xmlSchemaValidateFacet__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_SCHEMAS_ENABLED)
#ifdef bottom_xmlschemastypes
#undef xmlSchemaValidateFacetWhtsp
extern __typeof (xmlSchemaValidateFacetWhtsp) xmlSchemaValidateFacetWhtsp __attribute((alias("xmlSchemaValidateFacetWhtsp__internal_alias")));
#else
#ifndef xmlSchemaValidateFacetWhtsp
extern __typeof (xmlSchemaValidateFacetWhtsp) xmlSchemaValidateFacetWhtsp__internal_alias __attribute((visibility("hidden")));
#define xmlSchemaValidateFacetWhtsp xmlSchemaValidateFacetWhtsp__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_SCHEMAS_ENABLED)
#ifdef bottom_xmlschemas
#undef xmlSchemaValidateFile
extern __typeof (xmlSchemaValidateFile) xmlSchemaValidateFile __attribute((alias("xmlSchemaValidateFile__internal_alias")));
#else
#ifndef xmlSchemaValidateFile
extern __typeof (xmlSchemaValidateFile) xmlSchemaValidateFile__internal_alias __attribute((visibility("hidden")));
#define xmlSchemaValidateFile xmlSchemaValidateFile__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_SCHEMAS_ENABLED)
#ifdef bottom_xmlschemastypes
#undef xmlSchemaValidateLengthFacet
extern __typeof (xmlSchemaValidateLengthFacet) xmlSchemaValidateLengthFacet __attribute((alias("xmlSchemaValidateLengthFacet__internal_alias")));
#else
#ifndef xmlSchemaValidateLengthFacet
extern __typeof (xmlSchemaValidateLengthFacet) xmlSchemaValidateLengthFacet__internal_alias __attribute((visibility("hidden")));
#define xmlSchemaValidateLengthFacet xmlSchemaValidateLengthFacet__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_SCHEMAS_ENABLED)
#ifdef bottom_xmlschemastypes
#undef xmlSchemaValidateLengthFacetWhtsp
extern __typeof (xmlSchemaValidateLengthFacetWhtsp) xmlSchemaValidateLengthFacetWhtsp __attribute((alias("xmlSchemaValidateLengthFacetWhtsp__internal_alias")));
#else
#ifndef xmlSchemaValidateLengthFacetWhtsp
extern __typeof (xmlSchemaValidateLengthFacetWhtsp) xmlSchemaValidateLengthFacetWhtsp__internal_alias __attribute((visibility("hidden")));
#define xmlSchemaValidateLengthFacetWhtsp xmlSchemaValidateLengthFacetWhtsp__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_SCHEMAS_ENABLED)
#ifdef bottom_xmlschemastypes
#undef xmlSchemaValidateListSimpleTypeFacet
extern __typeof (xmlSchemaValidateListSimpleTypeFacet) xmlSchemaValidateListSimpleTypeFacet __attribute((alias("xmlSchemaValidateListSimpleTypeFacet__internal_alias")));
#else
#ifndef xmlSchemaValidateListSimpleTypeFacet
extern __typeof (xmlSchemaValidateListSimpleTypeFacet) xmlSchemaValidateListSimpleTypeFacet__internal_alias __attribute((visibility("hidden")));
#define xmlSchemaValidateListSimpleTypeFacet xmlSchemaValidateListSimpleTypeFacet__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_SCHEMAS_ENABLED)
#ifdef bottom_xmlschemas
#undef xmlSchemaValidateOneElement
extern __typeof (xmlSchemaValidateOneElement) xmlSchemaValidateOneElement __attribute((alias("xmlSchemaValidateOneElement__internal_alias")));
#else
#ifndef xmlSchemaValidateOneElement
extern __typeof (xmlSchemaValidateOneElement) xmlSchemaValidateOneElement__internal_alias __attribute((visibility("hidden")));
#define xmlSchemaValidateOneElement xmlSchemaValidateOneElement__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_SCHEMAS_ENABLED)
#ifdef bottom_xmlschemastypes
#undef xmlSchemaValidatePredefinedType
extern __typeof (xmlSchemaValidatePredefinedType) xmlSchemaValidatePredefinedType __attribute((alias("xmlSchemaValidatePredefinedType__internal_alias")));
#else
#ifndef xmlSchemaValidatePredefinedType
extern __typeof (xmlSchemaValidatePredefinedType) xmlSchemaValidatePredefinedType__internal_alias __attribute((visibility("hidden")));
#define xmlSchemaValidatePredefinedType xmlSchemaValidatePredefinedType__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_SCHEMAS_ENABLED)
#ifdef bottom_xmlschemas
#undef xmlSchemaValidateStream
extern __typeof (xmlSchemaValidateStream) xmlSchemaValidateStream __attribute((alias("xmlSchemaValidateStream__internal_alias")));
#else
#ifndef xmlSchemaValidateStream
extern __typeof (xmlSchemaValidateStream) xmlSchemaValidateStream__internal_alias __attribute((visibility("hidden")));
#define xmlSchemaValidateStream xmlSchemaValidateStream__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_SCHEMAS_ENABLED)
#ifdef bottom_xmlschemastypes
#undef xmlSchemaValueAppend
extern __typeof (xmlSchemaValueAppend) xmlSchemaValueAppend __attribute((alias("xmlSchemaValueAppend__internal_alias")));
#else
#ifndef xmlSchemaValueAppend
extern __typeof (xmlSchemaValueAppend) xmlSchemaValueAppend__internal_alias __attribute((visibility("hidden")));
#define xmlSchemaValueAppend xmlSchemaValueAppend__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_SCHEMAS_ENABLED)
#ifdef bottom_xmlschemastypes
#undef xmlSchemaValueGetAsBoolean
extern __typeof (xmlSchemaValueGetAsBoolean) xmlSchemaValueGetAsBoolean __attribute((alias("xmlSchemaValueGetAsBoolean__internal_alias")));
#else
#ifndef xmlSchemaValueGetAsBoolean
extern __typeof (xmlSchemaValueGetAsBoolean) xmlSchemaValueGetAsBoolean__internal_alias __attribute((visibility("hidden")));
#define xmlSchemaValueGetAsBoolean xmlSchemaValueGetAsBoolean__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_SCHEMAS_ENABLED)
#ifdef bottom_xmlschemastypes
#undef xmlSchemaValueGetAsString
extern __typeof (xmlSchemaValueGetAsString) xmlSchemaValueGetAsString __attribute((alias("xmlSchemaValueGetAsString__internal_alias")));
#else
#ifndef xmlSchemaValueGetAsString
extern __typeof (xmlSchemaValueGetAsString) xmlSchemaValueGetAsString__internal_alias __attribute((visibility("hidden")));
#define xmlSchemaValueGetAsString xmlSchemaValueGetAsString__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_SCHEMAS_ENABLED)
#ifdef bottom_xmlschemastypes
#undef xmlSchemaValueGetNext
extern __typeof (xmlSchemaValueGetNext) xmlSchemaValueGetNext __attribute((alias("xmlSchemaValueGetNext__internal_alias")));
#else
#ifndef xmlSchemaValueGetNext
extern __typeof (xmlSchemaValueGetNext) xmlSchemaValueGetNext__internal_alias __attribute((visibility("hidden")));
#define xmlSchemaValueGetNext xmlSchemaValueGetNext__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_SCHEMAS_ENABLED)
#ifdef bottom_xmlschemastypes
#undef xmlSchemaWhiteSpaceReplace
extern __typeof (xmlSchemaWhiteSpaceReplace) xmlSchemaWhiteSpaceReplace __attribute((alias("xmlSchemaWhiteSpaceReplace__internal_alias")));
#else
#ifndef xmlSchemaWhiteSpaceReplace
extern __typeof (xmlSchemaWhiteSpaceReplace) xmlSchemaWhiteSpaceReplace__internal_alias __attribute((visibility("hidden")));
#define xmlSchemaWhiteSpaceReplace xmlSchemaWhiteSpaceReplace__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_SCHEMATRON_ENABLED)
#ifdef bottom_schematron
#undef xmlSchematronFree
extern __typeof (xmlSchematronFree) xmlSchematronFree __attribute((alias("xmlSchematronFree__internal_alias")));
#else
#ifndef xmlSchematronFree
extern __typeof (xmlSchematronFree) xmlSchematronFree__internal_alias __attribute((visibility("hidden")));
#define xmlSchematronFree xmlSchematronFree__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_SCHEMATRON_ENABLED)
#ifdef bottom_schematron
#undef xmlSchematronFreeParserCtxt
extern __typeof (xmlSchematronFreeParserCtxt) xmlSchematronFreeParserCtxt __attribute((alias("xmlSchematronFreeParserCtxt__internal_alias")));
#else
#ifndef xmlSchematronFreeParserCtxt
extern __typeof (xmlSchematronFreeParserCtxt) xmlSchematronFreeParserCtxt__internal_alias __attribute((visibility("hidden")));
#define xmlSchematronFreeParserCtxt xmlSchematronFreeParserCtxt__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_SCHEMATRON_ENABLED)
#ifdef bottom_schematron
#undef xmlSchematronFreeValidCtxt
extern __typeof (xmlSchematronFreeValidCtxt) xmlSchematronFreeValidCtxt __attribute((alias("xmlSchematronFreeValidCtxt__internal_alias")));
#else
#ifndef xmlSchematronFreeValidCtxt
extern __typeof (xmlSchematronFreeValidCtxt) xmlSchematronFreeValidCtxt__internal_alias __attribute((visibility("hidden")));
#define xmlSchematronFreeValidCtxt xmlSchematronFreeValidCtxt__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_SCHEMATRON_ENABLED)
#ifdef bottom_schematron
#undef xmlSchematronNewDocParserCtxt
extern __typeof (xmlSchematronNewDocParserCtxt) xmlSchematronNewDocParserCtxt __attribute((alias("xmlSchematronNewDocParserCtxt__internal_alias")));
#else
#ifndef xmlSchematronNewDocParserCtxt
extern __typeof (xmlSchematronNewDocParserCtxt) xmlSchematronNewDocParserCtxt__internal_alias __attribute((visibility("hidden")));
#define xmlSchematronNewDocParserCtxt xmlSchematronNewDocParserCtxt__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_SCHEMATRON_ENABLED)
#ifdef bottom_schematron
#undef xmlSchematronNewMemParserCtxt
extern __typeof (xmlSchematronNewMemParserCtxt) xmlSchematronNewMemParserCtxt __attribute((alias("xmlSchematronNewMemParserCtxt__internal_alias")));
#else
#ifndef xmlSchematronNewMemParserCtxt
extern __typeof (xmlSchematronNewMemParserCtxt) xmlSchematronNewMemParserCtxt__internal_alias __attribute((visibility("hidden")));
#define xmlSchematronNewMemParserCtxt xmlSchematronNewMemParserCtxt__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_SCHEMATRON_ENABLED)
#ifdef bottom_schematron
#undef xmlSchematronNewParserCtxt
extern __typeof (xmlSchematronNewParserCtxt) xmlSchematronNewParserCtxt __attribute((alias("xmlSchematronNewParserCtxt__internal_alias")));
#else
#ifndef xmlSchematronNewParserCtxt
extern __typeof (xmlSchematronNewParserCtxt) xmlSchematronNewParserCtxt__internal_alias __attribute((visibility("hidden")));
#define xmlSchematronNewParserCtxt xmlSchematronNewParserCtxt__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_SCHEMATRON_ENABLED)
#ifdef bottom_schematron
#undef xmlSchematronNewValidCtxt
extern __typeof (xmlSchematronNewValidCtxt) xmlSchematronNewValidCtxt __attribute((alias("xmlSchematronNewValidCtxt__internal_alias")));
#else
#ifndef xmlSchematronNewValidCtxt
extern __typeof (xmlSchematronNewValidCtxt) xmlSchematronNewValidCtxt__internal_alias __attribute((visibility("hidden")));
#define xmlSchematronNewValidCtxt xmlSchematronNewValidCtxt__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_SCHEMATRON_ENABLED)
#ifdef bottom_schematron
#undef xmlSchematronParse
extern __typeof (xmlSchematronParse) xmlSchematronParse __attribute((alias("xmlSchematronParse__internal_alias")));
#else
#ifndef xmlSchematronParse
extern __typeof (xmlSchematronParse) xmlSchematronParse__internal_alias __attribute((visibility("hidden")));
#define xmlSchematronParse xmlSchematronParse__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_SCHEMATRON_ENABLED)
#ifdef bottom_schematron
#undef xmlSchematronValidateDoc
extern __typeof (xmlSchematronValidateDoc) xmlSchematronValidateDoc __attribute((alias("xmlSchematronValidateDoc__internal_alias")));
#else
#ifndef xmlSchematronValidateDoc
extern __typeof (xmlSchematronValidateDoc) xmlSchematronValidateDoc__internal_alias __attribute((visibility("hidden")));
#define xmlSchematronValidateDoc xmlSchematronValidateDoc__internal_alias
#endif
#endif
#endif

#ifdef bottom_tree
#undef xmlSearchNs
extern __typeof (xmlSearchNs) xmlSearchNs __attribute((alias("xmlSearchNs__internal_alias")));
#else
#ifndef xmlSearchNs
extern __typeof (xmlSearchNs) xmlSearchNs__internal_alias __attribute((visibility("hidden")));
#define xmlSearchNs xmlSearchNs__internal_alias
#endif
#endif

#ifdef bottom_tree
#undef xmlSearchNsByHref
extern __typeof (xmlSearchNsByHref) xmlSearchNsByHref __attribute((alias("xmlSearchNsByHref__internal_alias")));
#else
#ifndef xmlSearchNsByHref
extern __typeof (xmlSearchNsByHref) xmlSearchNsByHref__internal_alias __attribute((visibility("hidden")));
#define xmlSearchNsByHref xmlSearchNsByHref__internal_alias
#endif
#endif

#ifdef bottom_tree
#undef xmlSetBufferAllocationScheme
extern __typeof (xmlSetBufferAllocationScheme) xmlSetBufferAllocationScheme __attribute((alias("xmlSetBufferAllocationScheme__internal_alias")));
#else
#ifndef xmlSetBufferAllocationScheme
extern __typeof (xmlSetBufferAllocationScheme) xmlSetBufferAllocationScheme__internal_alias __attribute((visibility("hidden")));
#define xmlSetBufferAllocationScheme xmlSetBufferAllocationScheme__internal_alias
#endif
#endif

#ifdef bottom_tree
#undef xmlSetCompressMode
extern __typeof (xmlSetCompressMode) xmlSetCompressMode __attribute((alias("xmlSetCompressMode__internal_alias")));
#else
#ifndef xmlSetCompressMode
extern __typeof (xmlSetCompressMode) xmlSetCompressMode__internal_alias __attribute((visibility("hidden")));
#define xmlSetCompressMode xmlSetCompressMode__internal_alias
#endif
#endif

#ifdef bottom_tree
#undef xmlSetDocCompressMode
extern __typeof (xmlSetDocCompressMode) xmlSetDocCompressMode __attribute((alias("xmlSetDocCompressMode__internal_alias")));
#else
#ifndef xmlSetDocCompressMode
extern __typeof (xmlSetDocCompressMode) xmlSetDocCompressMode__internal_alias __attribute((visibility("hidden")));
#define xmlSetDocCompressMode xmlSetDocCompressMode__internal_alias
#endif
#endif

#if defined(LIBXML_LEGACY_ENABLED)
#ifdef bottom_parser
#undef xmlSetEntityReferenceFunc
extern __typeof (xmlSetEntityReferenceFunc) xmlSetEntityReferenceFunc __attribute((alias("xmlSetEntityReferenceFunc__internal_alias")));
#else
#ifndef xmlSetEntityReferenceFunc
extern __typeof (xmlSetEntityReferenceFunc) xmlSetEntityReferenceFunc__internal_alias __attribute((visibility("hidden")));
#define xmlSetEntityReferenceFunc xmlSetEntityReferenceFunc__internal_alias
#endif
#endif
#endif

#ifdef bottom_xmlIO
#undef xmlSetExternalEntityLoader
extern __typeof (xmlSetExternalEntityLoader) xmlSetExternalEntityLoader __attribute((alias("xmlSetExternalEntityLoader__internal_alias")));
#else
#ifndef xmlSetExternalEntityLoader
extern __typeof (xmlSetExternalEntityLoader) xmlSetExternalEntityLoader__internal_alias __attribute((visibility("hidden")));
#define xmlSetExternalEntityLoader xmlSetExternalEntityLoader__internal_alias
#endif
#endif

#if defined(LIBXML_LEGACY_ENABLED)
#ifdef bottom_legacy
#undef xmlSetFeature
extern __typeof (xmlSetFeature) xmlSetFeature __attribute((alias("xmlSetFeature__internal_alias")));
#else
#ifndef xmlSetFeature
extern __typeof (xmlSetFeature) xmlSetFeature__internal_alias __attribute((visibility("hidden")));
#define xmlSetFeature xmlSetFeature__internal_alias
#endif
#endif
#endif

#ifdef bottom_error
#undef xmlSetGenericErrorFunc
extern __typeof (xmlSetGenericErrorFunc) xmlSetGenericErrorFunc __attribute((alias("xmlSetGenericErrorFunc__internal_alias")));
#else
#ifndef xmlSetGenericErrorFunc
extern __typeof (xmlSetGenericErrorFunc) xmlSetGenericErrorFunc__internal_alias __attribute((visibility("hidden")));
#define xmlSetGenericErrorFunc xmlSetGenericErrorFunc__internal_alias
#endif
#endif

#ifdef bottom_tree
#undef xmlSetListDoc
extern __typeof (xmlSetListDoc) xmlSetListDoc __attribute((alias("xmlSetListDoc__internal_alias")));
#else
#ifndef xmlSetListDoc
extern __typeof (xmlSetListDoc) xmlSetListDoc__internal_alias __attribute((visibility("hidden")));
#define xmlSetListDoc xmlSetListDoc__internal_alias
#endif
#endif

#ifdef bottom_tree
#undef xmlSetNs
extern __typeof (xmlSetNs) xmlSetNs __attribute((alias("xmlSetNs__internal_alias")));
#else
#ifndef xmlSetNs
extern __typeof (xmlSetNs) xmlSetNs__internal_alias __attribute((visibility("hidden")));
#define xmlSetNs xmlSetNs__internal_alias
#endif
#endif

#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XINCLUDE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) || defined(LIBXML_HTML_ENABLED)
#ifdef bottom_tree
#undef xmlSetNsProp
extern __typeof (xmlSetNsProp) xmlSetNsProp __attribute((alias("xmlSetNsProp__internal_alias")));
#else
#ifndef xmlSetNsProp
extern __typeof (xmlSetNsProp) xmlSetNsProp__internal_alias __attribute((visibility("hidden")));
#define xmlSetNsProp xmlSetNsProp__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XINCLUDE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) || defined(LIBXML_HTML_ENABLED)
#ifdef bottom_tree
#undef xmlSetProp
extern __typeof (xmlSetProp) xmlSetProp __attribute((alias("xmlSetProp__internal_alias")));
#else
#ifndef xmlSetProp
extern __typeof (xmlSetProp) xmlSetProp__internal_alias __attribute((visibility("hidden")));
#define xmlSetProp xmlSetProp__internal_alias
#endif
#endif
#endif

#ifdef bottom_error
#undef xmlSetStructuredErrorFunc
extern __typeof (xmlSetStructuredErrorFunc) xmlSetStructuredErrorFunc __attribute((alias("xmlSetStructuredErrorFunc__internal_alias")));
#else
#ifndef xmlSetStructuredErrorFunc
extern __typeof (xmlSetStructuredErrorFunc) xmlSetStructuredErrorFunc__internal_alias __attribute((visibility("hidden")));
#define xmlSetStructuredErrorFunc xmlSetStructuredErrorFunc__internal_alias
#endif
#endif

#ifdef bottom_tree
#undef xmlSetTreeDoc
extern __typeof (xmlSetTreeDoc) xmlSetTreeDoc __attribute((alias("xmlSetTreeDoc__internal_alias")));
#else
#ifndef xmlSetTreeDoc
extern __typeof (xmlSetTreeDoc) xmlSetTreeDoc__internal_alias __attribute((visibility("hidden")));
#define xmlSetTreeDoc xmlSetTreeDoc__internal_alias
#endif
#endif

#if defined(LIBXML_SAX1_ENABLED)
#ifdef bottom_parser
#undef xmlSetupParserForBuffer
extern __typeof (xmlSetupParserForBuffer) xmlSetupParserForBuffer __attribute((alias("xmlSetupParserForBuffer__internal_alias")));
#else
#ifndef xmlSetupParserForBuffer
extern __typeof (xmlSetupParserForBuffer) xmlSetupParserForBuffer__internal_alias __attribute((visibility("hidden")));
#define xmlSetupParserForBuffer xmlSetupParserForBuffer__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_DEBUG_ENABLED) && defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_debugXML
#undef xmlShell
extern __typeof (xmlShell) xmlShell __attribute((alias("xmlShell__internal_alias")));
#else
#ifndef xmlShell
extern __typeof (xmlShell) xmlShell__internal_alias __attribute((visibility("hidden")));
#define xmlShell xmlShell__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_DEBUG_ENABLED) && defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_debugXML
#undef xmlShellBase
extern __typeof (xmlShellBase) xmlShellBase __attribute((alias("xmlShellBase__internal_alias")));
#else
#ifndef xmlShellBase
extern __typeof (xmlShellBase) xmlShellBase__internal_alias __attribute((visibility("hidden")));
#define xmlShellBase xmlShellBase__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_DEBUG_ENABLED) && defined(LIBXML_XPATH_ENABLED) && defined(LIBXML_OUTPUT_ENABLED)
#ifdef bottom_debugXML
#undef xmlShellCat
extern __typeof (xmlShellCat) xmlShellCat __attribute((alias("xmlShellCat__internal_alias")));
#else
#ifndef xmlShellCat
extern __typeof (xmlShellCat) xmlShellCat__internal_alias __attribute((visibility("hidden")));
#define xmlShellCat xmlShellCat__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_DEBUG_ENABLED) && defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_debugXML
#undef xmlShellDir
extern __typeof (xmlShellDir) xmlShellDir __attribute((alias("xmlShellDir__internal_alias")));
#else
#ifndef xmlShellDir
extern __typeof (xmlShellDir) xmlShellDir__internal_alias __attribute((visibility("hidden")));
#define xmlShellDir xmlShellDir__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_DEBUG_ENABLED) && defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_debugXML
#undef xmlShellDu
extern __typeof (xmlShellDu) xmlShellDu __attribute((alias("xmlShellDu__internal_alias")));
#else
#ifndef xmlShellDu
extern __typeof (xmlShellDu) xmlShellDu__internal_alias __attribute((visibility("hidden")));
#define xmlShellDu xmlShellDu__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_DEBUG_ENABLED) && defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_debugXML
#undef xmlShellList
extern __typeof (xmlShellList) xmlShellList __attribute((alias("xmlShellList__internal_alias")));
#else
#ifndef xmlShellList
extern __typeof (xmlShellList) xmlShellList__internal_alias __attribute((visibility("hidden")));
#define xmlShellList xmlShellList__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_DEBUG_ENABLED) && defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_debugXML
#undef xmlShellLoad
extern __typeof (xmlShellLoad) xmlShellLoad __attribute((alias("xmlShellLoad__internal_alias")));
#else
#ifndef xmlShellLoad
extern __typeof (xmlShellLoad) xmlShellLoad__internal_alias __attribute((visibility("hidden")));
#define xmlShellLoad xmlShellLoad__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_DEBUG_ENABLED) && defined(LIBXML_XPATH_ENABLED) && defined(LIBXML_OUTPUT_ENABLED)
#ifdef bottom_debugXML
#undef xmlShellPrintNode
extern __typeof (xmlShellPrintNode) xmlShellPrintNode __attribute((alias("xmlShellPrintNode__internal_alias")));
#else
#ifndef xmlShellPrintNode
extern __typeof (xmlShellPrintNode) xmlShellPrintNode__internal_alias __attribute((visibility("hidden")));
#define xmlShellPrintNode xmlShellPrintNode__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_DEBUG_ENABLED) && defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_debugXML
#undef xmlShellPrintXPathError
extern __typeof (xmlShellPrintXPathError) xmlShellPrintXPathError __attribute((alias("xmlShellPrintXPathError__internal_alias")));
#else
#ifndef xmlShellPrintXPathError
extern __typeof (xmlShellPrintXPathError) xmlShellPrintXPathError__internal_alias __attribute((visibility("hidden")));
#define xmlShellPrintXPathError xmlShellPrintXPathError__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_DEBUG_ENABLED) && defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_debugXML
#undef xmlShellPrintXPathResult
extern __typeof (xmlShellPrintXPathResult) xmlShellPrintXPathResult __attribute((alias("xmlShellPrintXPathResult__internal_alias")));
#else
#ifndef xmlShellPrintXPathResult
extern __typeof (xmlShellPrintXPathResult) xmlShellPrintXPathResult__internal_alias __attribute((visibility("hidden")));
#define xmlShellPrintXPathResult xmlShellPrintXPathResult__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_DEBUG_ENABLED) && defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_debugXML
#undef xmlShellPwd
extern __typeof (xmlShellPwd) xmlShellPwd __attribute((alias("xmlShellPwd__internal_alias")));
#else
#ifndef xmlShellPwd
extern __typeof (xmlShellPwd) xmlShellPwd__internal_alias __attribute((visibility("hidden")));
#define xmlShellPwd xmlShellPwd__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_DEBUG_ENABLED) && defined(LIBXML_XPATH_ENABLED) && defined(LIBXML_OUTPUT_ENABLED)
#ifdef bottom_debugXML
#undef xmlShellSave
extern __typeof (xmlShellSave) xmlShellSave __attribute((alias("xmlShellSave__internal_alias")));
#else
#ifndef xmlShellSave
extern __typeof (xmlShellSave) xmlShellSave__internal_alias __attribute((visibility("hidden")));
#define xmlShellSave xmlShellSave__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_DEBUG_ENABLED) && defined(LIBXML_XPATH_ENABLED) && defined(LIBXML_VALID_ENABLED)
#ifdef bottom_debugXML
#undef xmlShellValidate
extern __typeof (xmlShellValidate) xmlShellValidate __attribute((alias("xmlShellValidate__internal_alias")));
#else
#ifndef xmlShellValidate
extern __typeof (xmlShellValidate) xmlShellValidate__internal_alias __attribute((visibility("hidden")));
#define xmlShellValidate xmlShellValidate__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_DEBUG_ENABLED) && defined(LIBXML_XPATH_ENABLED) && defined(LIBXML_OUTPUT_ENABLED)
#ifdef bottom_debugXML
#undef xmlShellWrite
extern __typeof (xmlShellWrite) xmlShellWrite __attribute((alias("xmlShellWrite__internal_alias")));
#else
#ifndef xmlShellWrite
extern __typeof (xmlShellWrite) xmlShellWrite__internal_alias __attribute((visibility("hidden")));
#define xmlShellWrite xmlShellWrite__internal_alias
#endif
#endif
#endif

#ifdef bottom_parser
#undef xmlSkipBlankChars
extern __typeof (xmlSkipBlankChars) xmlSkipBlankChars __attribute((alias("xmlSkipBlankChars__internal_alias")));
#else
#ifndef xmlSkipBlankChars
extern __typeof (xmlSkipBlankChars) xmlSkipBlankChars__internal_alias __attribute((visibility("hidden")));
#define xmlSkipBlankChars xmlSkipBlankChars__internal_alias
#endif
#endif

#ifdef bottom_valid
#undef xmlSnprintfElementContent
extern __typeof (xmlSnprintfElementContent) xmlSnprintfElementContent __attribute((alias("xmlSnprintfElementContent__internal_alias")));
#else
#ifndef xmlSnprintfElementContent
extern __typeof (xmlSnprintfElementContent) xmlSnprintfElementContent__internal_alias __attribute((visibility("hidden")));
#define xmlSnprintfElementContent xmlSnprintfElementContent__internal_alias
#endif
#endif

#ifdef bottom_parser
#undef xmlSplitQName
extern __typeof (xmlSplitQName) xmlSplitQName __attribute((alias("xmlSplitQName__internal_alias")));
#else
#ifndef xmlSplitQName
extern __typeof (xmlSplitQName) xmlSplitQName__internal_alias __attribute((visibility("hidden")));
#define xmlSplitQName xmlSplitQName__internal_alias
#endif
#endif

#ifdef bottom_tree
#undef xmlSplitQName2
extern __typeof (xmlSplitQName2) xmlSplitQName2 __attribute((alias("xmlSplitQName2__internal_alias")));
#else
#ifndef xmlSplitQName2
extern __typeof (xmlSplitQName2) xmlSplitQName2__internal_alias __attribute((visibility("hidden")));
#define xmlSplitQName2 xmlSplitQName2__internal_alias
#endif
#endif

#ifdef bottom_tree
#undef xmlSplitQName3
extern __typeof (xmlSplitQName3) xmlSplitQName3 __attribute((alias("xmlSplitQName3__internal_alias")));
#else
#ifndef xmlSplitQName3
extern __typeof (xmlSplitQName3) xmlSplitQName3__internal_alias __attribute((visibility("hidden")));
#define xmlSplitQName3 xmlSplitQName3__internal_alias
#endif
#endif

#if defined(LIBXML_OUTPUT_ENABLED)
#ifdef bottom_valid
#undef xmlSprintfElementContent
extern __typeof (xmlSprintfElementContent) xmlSprintfElementContent __attribute((alias("xmlSprintfElementContent__internal_alias")));
#else
#ifndef xmlSprintfElementContent
extern __typeof (xmlSprintfElementContent) xmlSprintfElementContent__internal_alias __attribute((visibility("hidden")));
#define xmlSprintfElementContent xmlSprintfElementContent__internal_alias
#endif
#endif
#endif

#ifdef bottom_parser
#undef xmlStopParser
extern __typeof (xmlStopParser) xmlStopParser __attribute((alias("xmlStopParser__internal_alias")));
#else
#ifndef xmlStopParser
extern __typeof (xmlStopParser) xmlStopParser__internal_alias __attribute((visibility("hidden")));
#define xmlStopParser xmlStopParser__internal_alias
#endif
#endif

#ifdef bottom_xmlstring
#undef xmlStrEqual
extern __typeof (xmlStrEqual) xmlStrEqual __attribute((alias("xmlStrEqual__internal_alias")));
#else
#ifndef xmlStrEqual
extern __typeof (xmlStrEqual) xmlStrEqual__internal_alias __attribute((visibility("hidden")));
#define xmlStrEqual xmlStrEqual__internal_alias
#endif
#endif

#ifdef bottom_xmlstring
#undef xmlStrPrintf
extern __typeof (xmlStrPrintf) xmlStrPrintf __attribute((alias("xmlStrPrintf__internal_alias")));
#else
#ifndef xmlStrPrintf
extern __typeof (xmlStrPrintf) xmlStrPrintf__internal_alias __attribute((visibility("hidden")));
#define xmlStrPrintf xmlStrPrintf__internal_alias
#endif
#endif

#ifdef bottom_xmlstring
#undef xmlStrQEqual
extern __typeof (xmlStrQEqual) xmlStrQEqual __attribute((alias("xmlStrQEqual__internal_alias")));
#else
#ifndef xmlStrQEqual
extern __typeof (xmlStrQEqual) xmlStrQEqual__internal_alias __attribute((visibility("hidden")));
#define xmlStrQEqual xmlStrQEqual__internal_alias
#endif
#endif

#ifdef bottom_xmlstring
#undef xmlStrVPrintf
extern __typeof (xmlStrVPrintf) xmlStrVPrintf __attribute((alias("xmlStrVPrintf__internal_alias")));
#else
#ifndef xmlStrVPrintf
extern __typeof (xmlStrVPrintf) xmlStrVPrintf__internal_alias __attribute((visibility("hidden")));
#define xmlStrVPrintf xmlStrVPrintf__internal_alias
#endif
#endif

#ifdef bottom_xmlstring
#undef xmlStrcasecmp
extern __typeof (xmlStrcasecmp) xmlStrcasecmp __attribute((alias("xmlStrcasecmp__internal_alias")));
#else
#ifndef xmlStrcasecmp
extern __typeof (xmlStrcasecmp) xmlStrcasecmp__internal_alias __attribute((visibility("hidden")));
#define xmlStrcasecmp xmlStrcasecmp__internal_alias
#endif
#endif

#ifdef bottom_xmlstring
#undef xmlStrcasestr
extern __typeof (xmlStrcasestr) xmlStrcasestr __attribute((alias("xmlStrcasestr__internal_alias")));
#else
#ifndef xmlStrcasestr
extern __typeof (xmlStrcasestr) xmlStrcasestr__internal_alias __attribute((visibility("hidden")));
#define xmlStrcasestr xmlStrcasestr__internal_alias
#endif
#endif

#ifdef bottom_xmlstring
#undef xmlStrcat
extern __typeof (xmlStrcat) xmlStrcat __attribute((alias("xmlStrcat__internal_alias")));
#else
#ifndef xmlStrcat
extern __typeof (xmlStrcat) xmlStrcat__internal_alias __attribute((visibility("hidden")));
#define xmlStrcat xmlStrcat__internal_alias
#endif
#endif

#ifdef bottom_xmlstring
#undef xmlStrchr
extern __typeof (xmlStrchr) xmlStrchr __attribute((alias("xmlStrchr__internal_alias")));
#else
#ifndef xmlStrchr
extern __typeof (xmlStrchr) xmlStrchr__internal_alias __attribute((visibility("hidden")));
#define xmlStrchr xmlStrchr__internal_alias
#endif
#endif

#ifdef bottom_xmlstring
#undef xmlStrcmp
extern __typeof (xmlStrcmp) xmlStrcmp __attribute((alias("xmlStrcmp__internal_alias")));
#else
#ifndef xmlStrcmp
extern __typeof (xmlStrcmp) xmlStrcmp__internal_alias __attribute((visibility("hidden")));
#define xmlStrcmp xmlStrcmp__internal_alias
#endif
#endif

#ifdef bottom_xmlstring
#undef xmlStrdup
extern __typeof (xmlStrdup) xmlStrdup __attribute((alias("xmlStrdup__internal_alias")));
#else
#ifndef xmlStrdup
extern __typeof (xmlStrdup) xmlStrdup__internal_alias __attribute((visibility("hidden")));
#define xmlStrdup xmlStrdup__internal_alias
#endif
#endif

#if defined(LIBXML_PATTERN_ENABLED)
#ifdef bottom_pattern
#undef xmlStreamPop
extern __typeof (xmlStreamPop) xmlStreamPop __attribute((alias("xmlStreamPop__internal_alias")));
#else
#ifndef xmlStreamPop
extern __typeof (xmlStreamPop) xmlStreamPop__internal_alias __attribute((visibility("hidden")));
#define xmlStreamPop xmlStreamPop__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_PATTERN_ENABLED)
#ifdef bottom_pattern
#undef xmlStreamPush
extern __typeof (xmlStreamPush) xmlStreamPush __attribute((alias("xmlStreamPush__internal_alias")));
#else
#ifndef xmlStreamPush
extern __typeof (xmlStreamPush) xmlStreamPush__internal_alias __attribute((visibility("hidden")));
#define xmlStreamPush xmlStreamPush__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_PATTERN_ENABLED)
#ifdef bottom_pattern
#undef xmlStreamPushAttr
extern __typeof (xmlStreamPushAttr) xmlStreamPushAttr __attribute((alias("xmlStreamPushAttr__internal_alias")));
#else
#ifndef xmlStreamPushAttr
extern __typeof (xmlStreamPushAttr) xmlStreamPushAttr__internal_alias __attribute((visibility("hidden")));
#define xmlStreamPushAttr xmlStreamPushAttr__internal_alias
#endif
#endif
#endif

#ifdef bottom_parserInternals
#undef xmlStringCurrentChar
extern __typeof (xmlStringCurrentChar) xmlStringCurrentChar __attribute((alias("xmlStringCurrentChar__internal_alias")));
#else
#ifndef xmlStringCurrentChar
extern __typeof (xmlStringCurrentChar) xmlStringCurrentChar__internal_alias __attribute((visibility("hidden")));
#define xmlStringCurrentChar xmlStringCurrentChar__internal_alias
#endif
#endif

#ifdef bottom_parser
#undef xmlStringDecodeEntities
extern __typeof (xmlStringDecodeEntities) xmlStringDecodeEntities __attribute((alias("xmlStringDecodeEntities__internal_alias")));
#else
#ifndef xmlStringDecodeEntities
extern __typeof (xmlStringDecodeEntities) xmlStringDecodeEntities__internal_alias __attribute((visibility("hidden")));
#define xmlStringDecodeEntities xmlStringDecodeEntities__internal_alias
#endif
#endif

#ifdef bottom_tree
#undef xmlStringGetNodeList
extern __typeof (xmlStringGetNodeList) xmlStringGetNodeList __attribute((alias("xmlStringGetNodeList__internal_alias")));
#else
#ifndef xmlStringGetNodeList
extern __typeof (xmlStringGetNodeList) xmlStringGetNodeList__internal_alias __attribute((visibility("hidden")));
#define xmlStringGetNodeList xmlStringGetNodeList__internal_alias
#endif
#endif

#ifdef bottom_parser
#undef xmlStringLenDecodeEntities
extern __typeof (xmlStringLenDecodeEntities) xmlStringLenDecodeEntities __attribute((alias("xmlStringLenDecodeEntities__internal_alias")));
#else
#ifndef xmlStringLenDecodeEntities
extern __typeof (xmlStringLenDecodeEntities) xmlStringLenDecodeEntities__internal_alias __attribute((visibility("hidden")));
#define xmlStringLenDecodeEntities xmlStringLenDecodeEntities__internal_alias
#endif
#endif

#ifdef bottom_tree
#undef xmlStringLenGetNodeList
extern __typeof (xmlStringLenGetNodeList) xmlStringLenGetNodeList __attribute((alias("xmlStringLenGetNodeList__internal_alias")));
#else
#ifndef xmlStringLenGetNodeList
extern __typeof (xmlStringLenGetNodeList) xmlStringLenGetNodeList__internal_alias __attribute((visibility("hidden")));
#define xmlStringLenGetNodeList xmlStringLenGetNodeList__internal_alias
#endif
#endif

#ifdef bottom_xmlstring
#undef xmlStrlen
extern __typeof (xmlStrlen) xmlStrlen __attribute((alias("xmlStrlen__internal_alias")));
#else
#ifndef xmlStrlen
extern __typeof (xmlStrlen) xmlStrlen__internal_alias __attribute((visibility("hidden")));
#define xmlStrlen xmlStrlen__internal_alias
#endif
#endif

#ifdef bottom_xmlstring
#undef xmlStrncasecmp
extern __typeof (xmlStrncasecmp) xmlStrncasecmp __attribute((alias("xmlStrncasecmp__internal_alias")));
#else
#ifndef xmlStrncasecmp
extern __typeof (xmlStrncasecmp) xmlStrncasecmp__internal_alias __attribute((visibility("hidden")));
#define xmlStrncasecmp xmlStrncasecmp__internal_alias
#endif
#endif

#ifdef bottom_xmlstring
#undef xmlStrncat
extern __typeof (xmlStrncat) xmlStrncat __attribute((alias("xmlStrncat__internal_alias")));
#else
#ifndef xmlStrncat
extern __typeof (xmlStrncat) xmlStrncat__internal_alias __attribute((visibility("hidden")));
#define xmlStrncat xmlStrncat__internal_alias
#endif
#endif

#ifdef bottom_xmlstring
#undef xmlStrncatNew
extern __typeof (xmlStrncatNew) xmlStrncatNew __attribute((alias("xmlStrncatNew__internal_alias")));
#else
#ifndef xmlStrncatNew
extern __typeof (xmlStrncatNew) xmlStrncatNew__internal_alias __attribute((visibility("hidden")));
#define xmlStrncatNew xmlStrncatNew__internal_alias
#endif
#endif

#ifdef bottom_xmlstring
#undef xmlStrncmp
extern __typeof (xmlStrncmp) xmlStrncmp __attribute((alias("xmlStrncmp__internal_alias")));
#else
#ifndef xmlStrncmp
extern __typeof (xmlStrncmp) xmlStrncmp__internal_alias __attribute((visibility("hidden")));
#define xmlStrncmp xmlStrncmp__internal_alias
#endif
#endif

#ifdef bottom_xmlstring
#undef xmlStrndup
extern __typeof (xmlStrndup) xmlStrndup __attribute((alias("xmlStrndup__internal_alias")));
#else
#ifndef xmlStrndup
extern __typeof (xmlStrndup) xmlStrndup__internal_alias __attribute((visibility("hidden")));
#define xmlStrndup xmlStrndup__internal_alias
#endif
#endif

#ifdef bottom_xmlstring
#undef xmlStrstr
extern __typeof (xmlStrstr) xmlStrstr __attribute((alias("xmlStrstr__internal_alias")));
#else
#ifndef xmlStrstr
extern __typeof (xmlStrstr) xmlStrstr__internal_alias __attribute((visibility("hidden")));
#define xmlStrstr xmlStrstr__internal_alias
#endif
#endif

#ifdef bottom_xmlstring
#undef xmlStrsub
extern __typeof (xmlStrsub) xmlStrsub __attribute((alias("xmlStrsub__internal_alias")));
#else
#ifndef xmlStrsub
extern __typeof (xmlStrsub) xmlStrsub__internal_alias __attribute((visibility("hidden")));
#define xmlStrsub xmlStrsub__internal_alias
#endif
#endif

#ifdef bottom_parserInternals
#undef xmlSubstituteEntitiesDefault
extern __typeof (xmlSubstituteEntitiesDefault) xmlSubstituteEntitiesDefault __attribute((alias("xmlSubstituteEntitiesDefault__internal_alias")));
#else
#ifndef xmlSubstituteEntitiesDefault
extern __typeof (xmlSubstituteEntitiesDefault) xmlSubstituteEntitiesDefault__internal_alias __attribute((visibility("hidden")));
#define xmlSubstituteEntitiesDefault xmlSubstituteEntitiesDefault__internal_alias
#endif
#endif

#ifdef bottom_parserInternals
#undef xmlSwitchEncoding
extern __typeof (xmlSwitchEncoding) xmlSwitchEncoding __attribute((alias("xmlSwitchEncoding__internal_alias")));
#else
#ifndef xmlSwitchEncoding
extern __typeof (xmlSwitchEncoding) xmlSwitchEncoding__internal_alias __attribute((visibility("hidden")));
#define xmlSwitchEncoding xmlSwitchEncoding__internal_alias
#endif
#endif

#ifdef bottom_parserInternals
#undef xmlSwitchInputEncoding
extern __typeof (xmlSwitchInputEncoding) xmlSwitchInputEncoding __attribute((alias("xmlSwitchInputEncoding__internal_alias")));
#else
#ifndef xmlSwitchInputEncoding
extern __typeof (xmlSwitchInputEncoding) xmlSwitchInputEncoding__internal_alias __attribute((visibility("hidden")));
#define xmlSwitchInputEncoding xmlSwitchInputEncoding__internal_alias
#endif
#endif

#ifdef bottom_parserInternals
#undef xmlSwitchToEncoding
extern __typeof (xmlSwitchToEncoding) xmlSwitchToEncoding __attribute((alias("xmlSwitchToEncoding__internal_alias")));
#else
#ifndef xmlSwitchToEncoding
extern __typeof (xmlSwitchToEncoding) xmlSwitchToEncoding__internal_alias __attribute((visibility("hidden")));
#define xmlSwitchToEncoding xmlSwitchToEncoding__internal_alias
#endif
#endif

#ifdef bottom_tree
#undef xmlTextConcat
extern __typeof (xmlTextConcat) xmlTextConcat __attribute((alias("xmlTextConcat__internal_alias")));
#else
#ifndef xmlTextConcat
extern __typeof (xmlTextConcat) xmlTextConcat__internal_alias __attribute((visibility("hidden")));
#define xmlTextConcat xmlTextConcat__internal_alias
#endif
#endif

#ifdef bottom_tree
#undef xmlTextMerge
extern __typeof (xmlTextMerge) xmlTextMerge __attribute((alias("xmlTextMerge__internal_alias")));
#else
#ifndef xmlTextMerge
extern __typeof (xmlTextMerge) xmlTextMerge__internal_alias __attribute((visibility("hidden")));
#define xmlTextMerge xmlTextMerge__internal_alias
#endif
#endif

#if defined(LIBXML_READER_ENABLED)
#ifdef bottom_xmlreader
#undef xmlTextReaderAttributeCount
extern __typeof (xmlTextReaderAttributeCount) xmlTextReaderAttributeCount __attribute((alias("xmlTextReaderAttributeCount__internal_alias")));
#else
#ifndef xmlTextReaderAttributeCount
extern __typeof (xmlTextReaderAttributeCount) xmlTextReaderAttributeCount__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderAttributeCount xmlTextReaderAttributeCount__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_READER_ENABLED)
#ifdef bottom_xmlreader
#undef xmlTextReaderBaseUri
extern __typeof (xmlTextReaderBaseUri) xmlTextReaderBaseUri __attribute((alias("xmlTextReaderBaseUri__internal_alias")));
#else
#ifndef xmlTextReaderBaseUri
extern __typeof (xmlTextReaderBaseUri) xmlTextReaderBaseUri__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderBaseUri xmlTextReaderBaseUri__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_READER_ENABLED)
#ifdef bottom_xmlreader
#undef xmlTextReaderByteConsumed
extern __typeof (xmlTextReaderByteConsumed) xmlTextReaderByteConsumed __attribute((alias("xmlTextReaderByteConsumed__internal_alias")));
#else
#ifndef xmlTextReaderByteConsumed
extern __typeof (xmlTextReaderByteConsumed) xmlTextReaderByteConsumed__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderByteConsumed xmlTextReaderByteConsumed__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_READER_ENABLED)
#ifdef bottom_xmlreader
#undef xmlTextReaderClose
extern __typeof (xmlTextReaderClose) xmlTextReaderClose __attribute((alias("xmlTextReaderClose__internal_alias")));
#else
#ifndef xmlTextReaderClose
extern __typeof (xmlTextReaderClose) xmlTextReaderClose__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderClose xmlTextReaderClose__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_READER_ENABLED)
#ifdef bottom_xmlreader
#undef xmlTextReaderConstBaseUri
extern __typeof (xmlTextReaderConstBaseUri) xmlTextReaderConstBaseUri __attribute((alias("xmlTextReaderConstBaseUri__internal_alias")));
#else
#ifndef xmlTextReaderConstBaseUri
extern __typeof (xmlTextReaderConstBaseUri) xmlTextReaderConstBaseUri__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderConstBaseUri xmlTextReaderConstBaseUri__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_READER_ENABLED)
#ifdef bottom_xmlreader
#undef xmlTextReaderConstEncoding
extern __typeof (xmlTextReaderConstEncoding) xmlTextReaderConstEncoding __attribute((alias("xmlTextReaderConstEncoding__internal_alias")));
#else
#ifndef xmlTextReaderConstEncoding
extern __typeof (xmlTextReaderConstEncoding) xmlTextReaderConstEncoding__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderConstEncoding xmlTextReaderConstEncoding__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_READER_ENABLED)
#ifdef bottom_xmlreader
#undef xmlTextReaderConstLocalName
extern __typeof (xmlTextReaderConstLocalName) xmlTextReaderConstLocalName __attribute((alias("xmlTextReaderConstLocalName__internal_alias")));
#else
#ifndef xmlTextReaderConstLocalName
extern __typeof (xmlTextReaderConstLocalName) xmlTextReaderConstLocalName__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderConstLocalName xmlTextReaderConstLocalName__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_READER_ENABLED)
#ifdef bottom_xmlreader
#undef xmlTextReaderConstName
extern __typeof (xmlTextReaderConstName) xmlTextReaderConstName __attribute((alias("xmlTextReaderConstName__internal_alias")));
#else
#ifndef xmlTextReaderConstName
extern __typeof (xmlTextReaderConstName) xmlTextReaderConstName__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderConstName xmlTextReaderConstName__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_READER_ENABLED)
#ifdef bottom_xmlreader
#undef xmlTextReaderConstNamespaceUri
extern __typeof (xmlTextReaderConstNamespaceUri) xmlTextReaderConstNamespaceUri __attribute((alias("xmlTextReaderConstNamespaceUri__internal_alias")));
#else
#ifndef xmlTextReaderConstNamespaceUri
extern __typeof (xmlTextReaderConstNamespaceUri) xmlTextReaderConstNamespaceUri__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderConstNamespaceUri xmlTextReaderConstNamespaceUri__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_READER_ENABLED)
#ifdef bottom_xmlreader
#undef xmlTextReaderConstPrefix
extern __typeof (xmlTextReaderConstPrefix) xmlTextReaderConstPrefix __attribute((alias("xmlTextReaderConstPrefix__internal_alias")));
#else
#ifndef xmlTextReaderConstPrefix
extern __typeof (xmlTextReaderConstPrefix) xmlTextReaderConstPrefix__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderConstPrefix xmlTextReaderConstPrefix__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_READER_ENABLED)
#ifdef bottom_xmlreader
#undef xmlTextReaderConstString
extern __typeof (xmlTextReaderConstString) xmlTextReaderConstString __attribute((alias("xmlTextReaderConstString__internal_alias")));
#else
#ifndef xmlTextReaderConstString
extern __typeof (xmlTextReaderConstString) xmlTextReaderConstString__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderConstString xmlTextReaderConstString__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_READER_ENABLED)
#ifdef bottom_xmlreader
#undef xmlTextReaderConstValue
extern __typeof (xmlTextReaderConstValue) xmlTextReaderConstValue __attribute((alias("xmlTextReaderConstValue__internal_alias")));
#else
#ifndef xmlTextReaderConstValue
extern __typeof (xmlTextReaderConstValue) xmlTextReaderConstValue__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderConstValue xmlTextReaderConstValue__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_READER_ENABLED)
#ifdef bottom_xmlreader
#undef xmlTextReaderConstXmlLang
extern __typeof (xmlTextReaderConstXmlLang) xmlTextReaderConstXmlLang __attribute((alias("xmlTextReaderConstXmlLang__internal_alias")));
#else
#ifndef xmlTextReaderConstXmlLang
extern __typeof (xmlTextReaderConstXmlLang) xmlTextReaderConstXmlLang__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderConstXmlLang xmlTextReaderConstXmlLang__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_READER_ENABLED)
#ifdef bottom_xmlreader
#undef xmlTextReaderConstXmlVersion
extern __typeof (xmlTextReaderConstXmlVersion) xmlTextReaderConstXmlVersion __attribute((alias("xmlTextReaderConstXmlVersion__internal_alias")));
#else
#ifndef xmlTextReaderConstXmlVersion
extern __typeof (xmlTextReaderConstXmlVersion) xmlTextReaderConstXmlVersion__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderConstXmlVersion xmlTextReaderConstXmlVersion__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_READER_ENABLED)
#ifdef bottom_xmlreader
#undef xmlTextReaderCurrentDoc
extern __typeof (xmlTextReaderCurrentDoc) xmlTextReaderCurrentDoc __attribute((alias("xmlTextReaderCurrentDoc__internal_alias")));
#else
#ifndef xmlTextReaderCurrentDoc
extern __typeof (xmlTextReaderCurrentDoc) xmlTextReaderCurrentDoc__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderCurrentDoc xmlTextReaderCurrentDoc__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_READER_ENABLED)
#ifdef bottom_xmlreader
#undef xmlTextReaderCurrentNode
extern __typeof (xmlTextReaderCurrentNode) xmlTextReaderCurrentNode __attribute((alias("xmlTextReaderCurrentNode__internal_alias")));
#else
#ifndef xmlTextReaderCurrentNode
extern __typeof (xmlTextReaderCurrentNode) xmlTextReaderCurrentNode__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderCurrentNode xmlTextReaderCurrentNode__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_READER_ENABLED)
#ifdef bottom_xmlreader
#undef xmlTextReaderDepth
extern __typeof (xmlTextReaderDepth) xmlTextReaderDepth __attribute((alias("xmlTextReaderDepth__internal_alias")));
#else
#ifndef xmlTextReaderDepth
extern __typeof (xmlTextReaderDepth) xmlTextReaderDepth__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderDepth xmlTextReaderDepth__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_READER_ENABLED)
#ifdef bottom_xmlreader
#undef xmlTextReaderExpand
extern __typeof (xmlTextReaderExpand) xmlTextReaderExpand __attribute((alias("xmlTextReaderExpand__internal_alias")));
#else
#ifndef xmlTextReaderExpand
extern __typeof (xmlTextReaderExpand) xmlTextReaderExpand__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderExpand xmlTextReaderExpand__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_READER_ENABLED)
#ifdef bottom_xmlreader
#undef xmlTextReaderGetAttribute
extern __typeof (xmlTextReaderGetAttribute) xmlTextReaderGetAttribute __attribute((alias("xmlTextReaderGetAttribute__internal_alias")));
#else
#ifndef xmlTextReaderGetAttribute
extern __typeof (xmlTextReaderGetAttribute) xmlTextReaderGetAttribute__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderGetAttribute xmlTextReaderGetAttribute__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_READER_ENABLED)
#ifdef bottom_xmlreader
#undef xmlTextReaderGetAttributeNo
extern __typeof (xmlTextReaderGetAttributeNo) xmlTextReaderGetAttributeNo __attribute((alias("xmlTextReaderGetAttributeNo__internal_alias")));
#else
#ifndef xmlTextReaderGetAttributeNo
extern __typeof (xmlTextReaderGetAttributeNo) xmlTextReaderGetAttributeNo__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderGetAttributeNo xmlTextReaderGetAttributeNo__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_READER_ENABLED)
#ifdef bottom_xmlreader
#undef xmlTextReaderGetAttributeNs
extern __typeof (xmlTextReaderGetAttributeNs) xmlTextReaderGetAttributeNs __attribute((alias("xmlTextReaderGetAttributeNs__internal_alias")));
#else
#ifndef xmlTextReaderGetAttributeNs
extern __typeof (xmlTextReaderGetAttributeNs) xmlTextReaderGetAttributeNs__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderGetAttributeNs xmlTextReaderGetAttributeNs__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_READER_ENABLED)
#ifdef bottom_xmlreader
#undef xmlTextReaderGetErrorHandler
extern __typeof (xmlTextReaderGetErrorHandler) xmlTextReaderGetErrorHandler __attribute((alias("xmlTextReaderGetErrorHandler__internal_alias")));
#else
#ifndef xmlTextReaderGetErrorHandler
extern __typeof (xmlTextReaderGetErrorHandler) xmlTextReaderGetErrorHandler__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderGetErrorHandler xmlTextReaderGetErrorHandler__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_READER_ENABLED)
#ifdef bottom_xmlreader
#undef xmlTextReaderGetParserColumnNumber
extern __typeof (xmlTextReaderGetParserColumnNumber) xmlTextReaderGetParserColumnNumber __attribute((alias("xmlTextReaderGetParserColumnNumber__internal_alias")));
#else
#ifndef xmlTextReaderGetParserColumnNumber
extern __typeof (xmlTextReaderGetParserColumnNumber) xmlTextReaderGetParserColumnNumber__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderGetParserColumnNumber xmlTextReaderGetParserColumnNumber__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_READER_ENABLED)
#ifdef bottom_xmlreader
#undef xmlTextReaderGetParserLineNumber
extern __typeof (xmlTextReaderGetParserLineNumber) xmlTextReaderGetParserLineNumber __attribute((alias("xmlTextReaderGetParserLineNumber__internal_alias")));
#else
#ifndef xmlTextReaderGetParserLineNumber
extern __typeof (xmlTextReaderGetParserLineNumber) xmlTextReaderGetParserLineNumber__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderGetParserLineNumber xmlTextReaderGetParserLineNumber__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_READER_ENABLED)
#ifdef bottom_xmlreader
#undef xmlTextReaderGetParserProp
extern __typeof (xmlTextReaderGetParserProp) xmlTextReaderGetParserProp __attribute((alias("xmlTextReaderGetParserProp__internal_alias")));
#else
#ifndef xmlTextReaderGetParserProp
extern __typeof (xmlTextReaderGetParserProp) xmlTextReaderGetParserProp__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderGetParserProp xmlTextReaderGetParserProp__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_READER_ENABLED)
#ifdef bottom_xmlreader
#undef xmlTextReaderGetRemainder
extern __typeof (xmlTextReaderGetRemainder) xmlTextReaderGetRemainder __attribute((alias("xmlTextReaderGetRemainder__internal_alias")));
#else
#ifndef xmlTextReaderGetRemainder
extern __typeof (xmlTextReaderGetRemainder) xmlTextReaderGetRemainder__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderGetRemainder xmlTextReaderGetRemainder__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_READER_ENABLED)
#ifdef bottom_xmlreader
#undef xmlTextReaderHasAttributes
extern __typeof (xmlTextReaderHasAttributes) xmlTextReaderHasAttributes __attribute((alias("xmlTextReaderHasAttributes__internal_alias")));
#else
#ifndef xmlTextReaderHasAttributes
extern __typeof (xmlTextReaderHasAttributes) xmlTextReaderHasAttributes__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderHasAttributes xmlTextReaderHasAttributes__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_READER_ENABLED)
#ifdef bottom_xmlreader
#undef xmlTextReaderHasValue
extern __typeof (xmlTextReaderHasValue) xmlTextReaderHasValue __attribute((alias("xmlTextReaderHasValue__internal_alias")));
#else
#ifndef xmlTextReaderHasValue
extern __typeof (xmlTextReaderHasValue) xmlTextReaderHasValue__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderHasValue xmlTextReaderHasValue__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_READER_ENABLED)
#ifdef bottom_xmlreader
#undef xmlTextReaderIsDefault
extern __typeof (xmlTextReaderIsDefault) xmlTextReaderIsDefault __attribute((alias("xmlTextReaderIsDefault__internal_alias")));
#else
#ifndef xmlTextReaderIsDefault
extern __typeof (xmlTextReaderIsDefault) xmlTextReaderIsDefault__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderIsDefault xmlTextReaderIsDefault__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_READER_ENABLED)
#ifdef bottom_xmlreader
#undef xmlTextReaderIsEmptyElement
extern __typeof (xmlTextReaderIsEmptyElement) xmlTextReaderIsEmptyElement __attribute((alias("xmlTextReaderIsEmptyElement__internal_alias")));
#else
#ifndef xmlTextReaderIsEmptyElement
extern __typeof (xmlTextReaderIsEmptyElement) xmlTextReaderIsEmptyElement__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderIsEmptyElement xmlTextReaderIsEmptyElement__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_READER_ENABLED)
#ifdef bottom_xmlreader
#undef xmlTextReaderIsNamespaceDecl
extern __typeof (xmlTextReaderIsNamespaceDecl) xmlTextReaderIsNamespaceDecl __attribute((alias("xmlTextReaderIsNamespaceDecl__internal_alias")));
#else
#ifndef xmlTextReaderIsNamespaceDecl
extern __typeof (xmlTextReaderIsNamespaceDecl) xmlTextReaderIsNamespaceDecl__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderIsNamespaceDecl xmlTextReaderIsNamespaceDecl__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_READER_ENABLED)
#ifdef bottom_xmlreader
#undef xmlTextReaderIsValid
extern __typeof (xmlTextReaderIsValid) xmlTextReaderIsValid __attribute((alias("xmlTextReaderIsValid__internal_alias")));
#else
#ifndef xmlTextReaderIsValid
extern __typeof (xmlTextReaderIsValid) xmlTextReaderIsValid__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderIsValid xmlTextReaderIsValid__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_READER_ENABLED)
#ifdef bottom_xmlreader
#undef xmlTextReaderLocalName
extern __typeof (xmlTextReaderLocalName) xmlTextReaderLocalName __attribute((alias("xmlTextReaderLocalName__internal_alias")));
#else
#ifndef xmlTextReaderLocalName
extern __typeof (xmlTextReaderLocalName) xmlTextReaderLocalName__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderLocalName xmlTextReaderLocalName__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_READER_ENABLED)
#ifdef bottom_xmlreader
#undef xmlTextReaderLocatorBaseURI
extern __typeof (xmlTextReaderLocatorBaseURI) xmlTextReaderLocatorBaseURI __attribute((alias("xmlTextReaderLocatorBaseURI__internal_alias")));
#else
#ifndef xmlTextReaderLocatorBaseURI
extern __typeof (xmlTextReaderLocatorBaseURI) xmlTextReaderLocatorBaseURI__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderLocatorBaseURI xmlTextReaderLocatorBaseURI__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_READER_ENABLED)
#ifdef bottom_xmlreader
#undef xmlTextReaderLocatorLineNumber
extern __typeof (xmlTextReaderLocatorLineNumber) xmlTextReaderLocatorLineNumber __attribute((alias("xmlTextReaderLocatorLineNumber__internal_alias")));
#else
#ifndef xmlTextReaderLocatorLineNumber
extern __typeof (xmlTextReaderLocatorLineNumber) xmlTextReaderLocatorLineNumber__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderLocatorLineNumber xmlTextReaderLocatorLineNumber__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_READER_ENABLED)
#ifdef bottom_xmlreader
#undef xmlTextReaderLookupNamespace
extern __typeof (xmlTextReaderLookupNamespace) xmlTextReaderLookupNamespace __attribute((alias("xmlTextReaderLookupNamespace__internal_alias")));
#else
#ifndef xmlTextReaderLookupNamespace
extern __typeof (xmlTextReaderLookupNamespace) xmlTextReaderLookupNamespace__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderLookupNamespace xmlTextReaderLookupNamespace__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_READER_ENABLED)
#ifdef bottom_xmlreader
#undef xmlTextReaderMoveToAttribute
extern __typeof (xmlTextReaderMoveToAttribute) xmlTextReaderMoveToAttribute __attribute((alias("xmlTextReaderMoveToAttribute__internal_alias")));
#else
#ifndef xmlTextReaderMoveToAttribute
extern __typeof (xmlTextReaderMoveToAttribute) xmlTextReaderMoveToAttribute__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderMoveToAttribute xmlTextReaderMoveToAttribute__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_READER_ENABLED)
#ifdef bottom_xmlreader
#undef xmlTextReaderMoveToAttributeNo
extern __typeof (xmlTextReaderMoveToAttributeNo) xmlTextReaderMoveToAttributeNo __attribute((alias("xmlTextReaderMoveToAttributeNo__internal_alias")));
#else
#ifndef xmlTextReaderMoveToAttributeNo
extern __typeof (xmlTextReaderMoveToAttributeNo) xmlTextReaderMoveToAttributeNo__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderMoveToAttributeNo xmlTextReaderMoveToAttributeNo__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_READER_ENABLED)
#ifdef bottom_xmlreader
#undef xmlTextReaderMoveToAttributeNs
extern __typeof (xmlTextReaderMoveToAttributeNs) xmlTextReaderMoveToAttributeNs __attribute((alias("xmlTextReaderMoveToAttributeNs__internal_alias")));
#else
#ifndef xmlTextReaderMoveToAttributeNs
extern __typeof (xmlTextReaderMoveToAttributeNs) xmlTextReaderMoveToAttributeNs__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderMoveToAttributeNs xmlTextReaderMoveToAttributeNs__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_READER_ENABLED)
#ifdef bottom_xmlreader
#undef xmlTextReaderMoveToElement
extern __typeof (xmlTextReaderMoveToElement) xmlTextReaderMoveToElement __attribute((alias("xmlTextReaderMoveToElement__internal_alias")));
#else
#ifndef xmlTextReaderMoveToElement
extern __typeof (xmlTextReaderMoveToElement) xmlTextReaderMoveToElement__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderMoveToElement xmlTextReaderMoveToElement__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_READER_ENABLED)
#ifdef bottom_xmlreader
#undef xmlTextReaderMoveToFirstAttribute
extern __typeof (xmlTextReaderMoveToFirstAttribute) xmlTextReaderMoveToFirstAttribute __attribute((alias("xmlTextReaderMoveToFirstAttribute__internal_alias")));
#else
#ifndef xmlTextReaderMoveToFirstAttribute
extern __typeof (xmlTextReaderMoveToFirstAttribute) xmlTextReaderMoveToFirstAttribute__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderMoveToFirstAttribute xmlTextReaderMoveToFirstAttribute__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_READER_ENABLED)
#ifdef bottom_xmlreader
#undef xmlTextReaderMoveToNextAttribute
extern __typeof (xmlTextReaderMoveToNextAttribute) xmlTextReaderMoveToNextAttribute __attribute((alias("xmlTextReaderMoveToNextAttribute__internal_alias")));
#else
#ifndef xmlTextReaderMoveToNextAttribute
extern __typeof (xmlTextReaderMoveToNextAttribute) xmlTextReaderMoveToNextAttribute__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderMoveToNextAttribute xmlTextReaderMoveToNextAttribute__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_READER_ENABLED)
#ifdef bottom_xmlreader
#undef xmlTextReaderName
extern __typeof (xmlTextReaderName) xmlTextReaderName __attribute((alias("xmlTextReaderName__internal_alias")));
#else
#ifndef xmlTextReaderName
extern __typeof (xmlTextReaderName) xmlTextReaderName__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderName xmlTextReaderName__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_READER_ENABLED)
#ifdef bottom_xmlreader
#undef xmlTextReaderNamespaceUri
extern __typeof (xmlTextReaderNamespaceUri) xmlTextReaderNamespaceUri __attribute((alias("xmlTextReaderNamespaceUri__internal_alias")));
#else
#ifndef xmlTextReaderNamespaceUri
extern __typeof (xmlTextReaderNamespaceUri) xmlTextReaderNamespaceUri__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderNamespaceUri xmlTextReaderNamespaceUri__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_READER_ENABLED)
#ifdef bottom_xmlreader
#undef xmlTextReaderNext
extern __typeof (xmlTextReaderNext) xmlTextReaderNext __attribute((alias("xmlTextReaderNext__internal_alias")));
#else
#ifndef xmlTextReaderNext
extern __typeof (xmlTextReaderNext) xmlTextReaderNext__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderNext xmlTextReaderNext__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_READER_ENABLED)
#ifdef bottom_xmlreader
#undef xmlTextReaderNextSibling
extern __typeof (xmlTextReaderNextSibling) xmlTextReaderNextSibling __attribute((alias("xmlTextReaderNextSibling__internal_alias")));
#else
#ifndef xmlTextReaderNextSibling
extern __typeof (xmlTextReaderNextSibling) xmlTextReaderNextSibling__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderNextSibling xmlTextReaderNextSibling__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_READER_ENABLED)
#ifdef bottom_xmlreader
#undef xmlTextReaderNodeType
extern __typeof (xmlTextReaderNodeType) xmlTextReaderNodeType __attribute((alias("xmlTextReaderNodeType__internal_alias")));
#else
#ifndef xmlTextReaderNodeType
extern __typeof (xmlTextReaderNodeType) xmlTextReaderNodeType__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderNodeType xmlTextReaderNodeType__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_READER_ENABLED)
#ifdef bottom_xmlreader
#undef xmlTextReaderNormalization
extern __typeof (xmlTextReaderNormalization) xmlTextReaderNormalization __attribute((alias("xmlTextReaderNormalization__internal_alias")));
#else
#ifndef xmlTextReaderNormalization
extern __typeof (xmlTextReaderNormalization) xmlTextReaderNormalization__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderNormalization xmlTextReaderNormalization__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_READER_ENABLED)
#ifdef bottom_xmlreader
#undef xmlTextReaderPrefix
extern __typeof (xmlTextReaderPrefix) xmlTextReaderPrefix __attribute((alias("xmlTextReaderPrefix__internal_alias")));
#else
#ifndef xmlTextReaderPrefix
extern __typeof (xmlTextReaderPrefix) xmlTextReaderPrefix__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderPrefix xmlTextReaderPrefix__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_READER_ENABLED)
#ifdef bottom_xmlreader
#undef xmlTextReaderPreserve
extern __typeof (xmlTextReaderPreserve) xmlTextReaderPreserve __attribute((alias("xmlTextReaderPreserve__internal_alias")));
#else
#ifndef xmlTextReaderPreserve
extern __typeof (xmlTextReaderPreserve) xmlTextReaderPreserve__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderPreserve xmlTextReaderPreserve__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_READER_ENABLED) && defined(LIBXML_PATTERN_ENABLED)
#ifdef bottom_xmlreader
#undef xmlTextReaderPreservePattern
extern __typeof (xmlTextReaderPreservePattern) xmlTextReaderPreservePattern __attribute((alias("xmlTextReaderPreservePattern__internal_alias")));
#else
#ifndef xmlTextReaderPreservePattern
extern __typeof (xmlTextReaderPreservePattern) xmlTextReaderPreservePattern__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderPreservePattern xmlTextReaderPreservePattern__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_READER_ENABLED)
#ifdef bottom_xmlreader
#undef xmlTextReaderQuoteChar
extern __typeof (xmlTextReaderQuoteChar) xmlTextReaderQuoteChar __attribute((alias("xmlTextReaderQuoteChar__internal_alias")));
#else
#ifndef xmlTextReaderQuoteChar
extern __typeof (xmlTextReaderQuoteChar) xmlTextReaderQuoteChar__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderQuoteChar xmlTextReaderQuoteChar__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_READER_ENABLED)
#ifdef bottom_xmlreader
#undef xmlTextReaderRead
extern __typeof (xmlTextReaderRead) xmlTextReaderRead __attribute((alias("xmlTextReaderRead__internal_alias")));
#else
#ifndef xmlTextReaderRead
extern __typeof (xmlTextReaderRead) xmlTextReaderRead__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderRead xmlTextReaderRead__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_READER_ENABLED)
#ifdef bottom_xmlreader
#undef xmlTextReaderReadAttributeValue
extern __typeof (xmlTextReaderReadAttributeValue) xmlTextReaderReadAttributeValue __attribute((alias("xmlTextReaderReadAttributeValue__internal_alias")));
#else
#ifndef xmlTextReaderReadAttributeValue
extern __typeof (xmlTextReaderReadAttributeValue) xmlTextReaderReadAttributeValue__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderReadAttributeValue xmlTextReaderReadAttributeValue__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_READER_ENABLED)
#ifdef bottom_xmlreader
#undef xmlTextReaderReadInnerXml
extern __typeof (xmlTextReaderReadInnerXml) xmlTextReaderReadInnerXml __attribute((alias("xmlTextReaderReadInnerXml__internal_alias")));
#else
#ifndef xmlTextReaderReadInnerXml
extern __typeof (xmlTextReaderReadInnerXml) xmlTextReaderReadInnerXml__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderReadInnerXml xmlTextReaderReadInnerXml__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_READER_ENABLED)
#ifdef bottom_xmlreader
#undef xmlTextReaderReadOuterXml
extern __typeof (xmlTextReaderReadOuterXml) xmlTextReaderReadOuterXml __attribute((alias("xmlTextReaderReadOuterXml__internal_alias")));
#else
#ifndef xmlTextReaderReadOuterXml
extern __typeof (xmlTextReaderReadOuterXml) xmlTextReaderReadOuterXml__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderReadOuterXml xmlTextReaderReadOuterXml__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_READER_ENABLED)
#ifdef bottom_xmlreader
#undef xmlTextReaderReadState
extern __typeof (xmlTextReaderReadState) xmlTextReaderReadState __attribute((alias("xmlTextReaderReadState__internal_alias")));
#else
#ifndef xmlTextReaderReadState
extern __typeof (xmlTextReaderReadState) xmlTextReaderReadState__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderReadState xmlTextReaderReadState__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_READER_ENABLED)
#ifdef bottom_xmlreader
#undef xmlTextReaderReadString
extern __typeof (xmlTextReaderReadString) xmlTextReaderReadString __attribute((alias("xmlTextReaderReadString__internal_alias")));
#else
#ifndef xmlTextReaderReadString
extern __typeof (xmlTextReaderReadString) xmlTextReaderReadString__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderReadString xmlTextReaderReadString__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_READER_ENABLED) && defined(LIBXML_SCHEMAS_ENABLED)
#ifdef bottom_xmlreader
#undef xmlTextReaderRelaxNGSetSchema
extern __typeof (xmlTextReaderRelaxNGSetSchema) xmlTextReaderRelaxNGSetSchema __attribute((alias("xmlTextReaderRelaxNGSetSchema__internal_alias")));
#else
#ifndef xmlTextReaderRelaxNGSetSchema
extern __typeof (xmlTextReaderRelaxNGSetSchema) xmlTextReaderRelaxNGSetSchema__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderRelaxNGSetSchema xmlTextReaderRelaxNGSetSchema__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_READER_ENABLED) && defined(LIBXML_SCHEMAS_ENABLED)
#ifdef bottom_xmlreader
#undef xmlTextReaderRelaxNGValidate
extern __typeof (xmlTextReaderRelaxNGValidate) xmlTextReaderRelaxNGValidate __attribute((alias("xmlTextReaderRelaxNGValidate__internal_alias")));
#else
#ifndef xmlTextReaderRelaxNGValidate
extern __typeof (xmlTextReaderRelaxNGValidate) xmlTextReaderRelaxNGValidate__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderRelaxNGValidate xmlTextReaderRelaxNGValidate__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_READER_ENABLED) && defined(LIBXML_SCHEMAS_ENABLED)
#ifdef bottom_xmlreader
#undef xmlTextReaderSchemaValidate
extern __typeof (xmlTextReaderSchemaValidate) xmlTextReaderSchemaValidate __attribute((alias("xmlTextReaderSchemaValidate__internal_alias")));
#else
#ifndef xmlTextReaderSchemaValidate
extern __typeof (xmlTextReaderSchemaValidate) xmlTextReaderSchemaValidate__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderSchemaValidate xmlTextReaderSchemaValidate__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_READER_ENABLED)
#ifdef bottom_xmlreader
#undef xmlTextReaderSetErrorHandler
extern __typeof (xmlTextReaderSetErrorHandler) xmlTextReaderSetErrorHandler __attribute((alias("xmlTextReaderSetErrorHandler__internal_alias")));
#else
#ifndef xmlTextReaderSetErrorHandler
extern __typeof (xmlTextReaderSetErrorHandler) xmlTextReaderSetErrorHandler__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderSetErrorHandler xmlTextReaderSetErrorHandler__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_READER_ENABLED)
#ifdef bottom_xmlreader
#undef xmlTextReaderSetParserProp
extern __typeof (xmlTextReaderSetParserProp) xmlTextReaderSetParserProp __attribute((alias("xmlTextReaderSetParserProp__internal_alias")));
#else
#ifndef xmlTextReaderSetParserProp
extern __typeof (xmlTextReaderSetParserProp) xmlTextReaderSetParserProp__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderSetParserProp xmlTextReaderSetParserProp__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_READER_ENABLED) && defined(LIBXML_SCHEMAS_ENABLED)
#ifdef bottom_xmlreader
#undef xmlTextReaderSetSchema
extern __typeof (xmlTextReaderSetSchema) xmlTextReaderSetSchema __attribute((alias("xmlTextReaderSetSchema__internal_alias")));
#else
#ifndef xmlTextReaderSetSchema
extern __typeof (xmlTextReaderSetSchema) xmlTextReaderSetSchema__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderSetSchema xmlTextReaderSetSchema__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_READER_ENABLED)
#ifdef bottom_xmlreader
#undef xmlTextReaderSetStructuredErrorHandler
extern __typeof (xmlTextReaderSetStructuredErrorHandler) xmlTextReaderSetStructuredErrorHandler __attribute((alias("xmlTextReaderSetStructuredErrorHandler__internal_alias")));
#else
#ifndef xmlTextReaderSetStructuredErrorHandler
extern __typeof (xmlTextReaderSetStructuredErrorHandler) xmlTextReaderSetStructuredErrorHandler__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderSetStructuredErrorHandler xmlTextReaderSetStructuredErrorHandler__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_READER_ENABLED)
#ifdef bottom_xmlreader
#undef xmlTextReaderStandalone
extern __typeof (xmlTextReaderStandalone) xmlTextReaderStandalone __attribute((alias("xmlTextReaderStandalone__internal_alias")));
#else
#ifndef xmlTextReaderStandalone
extern __typeof (xmlTextReaderStandalone) xmlTextReaderStandalone__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderStandalone xmlTextReaderStandalone__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_READER_ENABLED)
#ifdef bottom_xmlreader
#undef xmlTextReaderValue
extern __typeof (xmlTextReaderValue) xmlTextReaderValue __attribute((alias("xmlTextReaderValue__internal_alias")));
#else
#ifndef xmlTextReaderValue
extern __typeof (xmlTextReaderValue) xmlTextReaderValue__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderValue xmlTextReaderValue__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_READER_ENABLED)
#ifdef bottom_xmlreader
#undef xmlTextReaderXmlLang
extern __typeof (xmlTextReaderXmlLang) xmlTextReaderXmlLang __attribute((alias("xmlTextReaderXmlLang__internal_alias")));
#else
#ifndef xmlTextReaderXmlLang
extern __typeof (xmlTextReaderXmlLang) xmlTextReaderXmlLang__internal_alias __attribute((visibility("hidden")));
#define xmlTextReaderXmlLang xmlTextReaderXmlLang__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_WRITER_ENABLED)
#ifdef bottom_xmlwriter
#undef xmlTextWriterEndAttribute
extern __typeof (xmlTextWriterEndAttribute) xmlTextWriterEndAttribute __attribute((alias("xmlTextWriterEndAttribute__internal_alias")));
#else
#ifndef xmlTextWriterEndAttribute
extern __typeof (xmlTextWriterEndAttribute) xmlTextWriterEndAttribute__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterEndAttribute xmlTextWriterEndAttribute__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_WRITER_ENABLED)
#ifdef bottom_xmlwriter
#undef xmlTextWriterEndCDATA
extern __typeof (xmlTextWriterEndCDATA) xmlTextWriterEndCDATA __attribute((alias("xmlTextWriterEndCDATA__internal_alias")));
#else
#ifndef xmlTextWriterEndCDATA
extern __typeof (xmlTextWriterEndCDATA) xmlTextWriterEndCDATA__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterEndCDATA xmlTextWriterEndCDATA__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_WRITER_ENABLED)
#ifdef bottom_xmlwriter
#undef xmlTextWriterEndComment
extern __typeof (xmlTextWriterEndComment) xmlTextWriterEndComment __attribute((alias("xmlTextWriterEndComment__internal_alias")));
#else
#ifndef xmlTextWriterEndComment
extern __typeof (xmlTextWriterEndComment) xmlTextWriterEndComment__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterEndComment xmlTextWriterEndComment__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_WRITER_ENABLED)
#ifdef bottom_xmlwriter
#undef xmlTextWriterEndDTD
extern __typeof (xmlTextWriterEndDTD) xmlTextWriterEndDTD __attribute((alias("xmlTextWriterEndDTD__internal_alias")));
#else
#ifndef xmlTextWriterEndDTD
extern __typeof (xmlTextWriterEndDTD) xmlTextWriterEndDTD__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterEndDTD xmlTextWriterEndDTD__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_WRITER_ENABLED)
#ifdef bottom_xmlwriter
#undef xmlTextWriterEndDTDAttlist
extern __typeof (xmlTextWriterEndDTDAttlist) xmlTextWriterEndDTDAttlist __attribute((alias("xmlTextWriterEndDTDAttlist__internal_alias")));
#else
#ifndef xmlTextWriterEndDTDAttlist
extern __typeof (xmlTextWriterEndDTDAttlist) xmlTextWriterEndDTDAttlist__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterEndDTDAttlist xmlTextWriterEndDTDAttlist__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_WRITER_ENABLED)
#ifdef bottom_xmlwriter
#undef xmlTextWriterEndDTDElement
extern __typeof (xmlTextWriterEndDTDElement) xmlTextWriterEndDTDElement __attribute((alias("xmlTextWriterEndDTDElement__internal_alias")));
#else
#ifndef xmlTextWriterEndDTDElement
extern __typeof (xmlTextWriterEndDTDElement) xmlTextWriterEndDTDElement__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterEndDTDElement xmlTextWriterEndDTDElement__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_WRITER_ENABLED)
#ifdef bottom_xmlwriter
#undef xmlTextWriterEndDTDEntity
extern __typeof (xmlTextWriterEndDTDEntity) xmlTextWriterEndDTDEntity __attribute((alias("xmlTextWriterEndDTDEntity__internal_alias")));
#else
#ifndef xmlTextWriterEndDTDEntity
extern __typeof (xmlTextWriterEndDTDEntity) xmlTextWriterEndDTDEntity__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterEndDTDEntity xmlTextWriterEndDTDEntity__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_WRITER_ENABLED)
#ifdef bottom_xmlwriter
#undef xmlTextWriterEndDocument
extern __typeof (xmlTextWriterEndDocument) xmlTextWriterEndDocument __attribute((alias("xmlTextWriterEndDocument__internal_alias")));
#else
#ifndef xmlTextWriterEndDocument
extern __typeof (xmlTextWriterEndDocument) xmlTextWriterEndDocument__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterEndDocument xmlTextWriterEndDocument__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_WRITER_ENABLED)
#ifdef bottom_xmlwriter
#undef xmlTextWriterEndElement
extern __typeof (xmlTextWriterEndElement) xmlTextWriterEndElement __attribute((alias("xmlTextWriterEndElement__internal_alias")));
#else
#ifndef xmlTextWriterEndElement
extern __typeof (xmlTextWriterEndElement) xmlTextWriterEndElement__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterEndElement xmlTextWriterEndElement__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_WRITER_ENABLED)
#ifdef bottom_xmlwriter
#undef xmlTextWriterEndPI
extern __typeof (xmlTextWriterEndPI) xmlTextWriterEndPI __attribute((alias("xmlTextWriterEndPI__internal_alias")));
#else
#ifndef xmlTextWriterEndPI
extern __typeof (xmlTextWriterEndPI) xmlTextWriterEndPI__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterEndPI xmlTextWriterEndPI__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_WRITER_ENABLED)
#ifdef bottom_xmlwriter
#undef xmlTextWriterFlush
extern __typeof (xmlTextWriterFlush) xmlTextWriterFlush __attribute((alias("xmlTextWriterFlush__internal_alias")));
#else
#ifndef xmlTextWriterFlush
extern __typeof (xmlTextWriterFlush) xmlTextWriterFlush__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterFlush xmlTextWriterFlush__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_WRITER_ENABLED)
#ifdef bottom_xmlwriter
#undef xmlTextWriterFullEndElement
extern __typeof (xmlTextWriterFullEndElement) xmlTextWriterFullEndElement __attribute((alias("xmlTextWriterFullEndElement__internal_alias")));
#else
#ifndef xmlTextWriterFullEndElement
extern __typeof (xmlTextWriterFullEndElement) xmlTextWriterFullEndElement__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterFullEndElement xmlTextWriterFullEndElement__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_WRITER_ENABLED)
#ifdef bottom_xmlwriter
#undef xmlTextWriterSetIndent
extern __typeof (xmlTextWriterSetIndent) xmlTextWriterSetIndent __attribute((alias("xmlTextWriterSetIndent__internal_alias")));
#else
#ifndef xmlTextWriterSetIndent
extern __typeof (xmlTextWriterSetIndent) xmlTextWriterSetIndent__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterSetIndent xmlTextWriterSetIndent__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_WRITER_ENABLED)
#ifdef bottom_xmlwriter
#undef xmlTextWriterSetIndentString
extern __typeof (xmlTextWriterSetIndentString) xmlTextWriterSetIndentString __attribute((alias("xmlTextWriterSetIndentString__internal_alias")));
#else
#ifndef xmlTextWriterSetIndentString
extern __typeof (xmlTextWriterSetIndentString) xmlTextWriterSetIndentString__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterSetIndentString xmlTextWriterSetIndentString__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_WRITER_ENABLED)
#ifdef bottom_xmlwriter
#undef xmlTextWriterStartAttribute
extern __typeof (xmlTextWriterStartAttribute) xmlTextWriterStartAttribute __attribute((alias("xmlTextWriterStartAttribute__internal_alias")));
#else
#ifndef xmlTextWriterStartAttribute
extern __typeof (xmlTextWriterStartAttribute) xmlTextWriterStartAttribute__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterStartAttribute xmlTextWriterStartAttribute__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_WRITER_ENABLED)
#ifdef bottom_xmlwriter
#undef xmlTextWriterStartAttributeNS
extern __typeof (xmlTextWriterStartAttributeNS) xmlTextWriterStartAttributeNS __attribute((alias("xmlTextWriterStartAttributeNS__internal_alias")));
#else
#ifndef xmlTextWriterStartAttributeNS
extern __typeof (xmlTextWriterStartAttributeNS) xmlTextWriterStartAttributeNS__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterStartAttributeNS xmlTextWriterStartAttributeNS__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_WRITER_ENABLED)
#ifdef bottom_xmlwriter
#undef xmlTextWriterStartCDATA
extern __typeof (xmlTextWriterStartCDATA) xmlTextWriterStartCDATA __attribute((alias("xmlTextWriterStartCDATA__internal_alias")));
#else
#ifndef xmlTextWriterStartCDATA
extern __typeof (xmlTextWriterStartCDATA) xmlTextWriterStartCDATA__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterStartCDATA xmlTextWriterStartCDATA__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_WRITER_ENABLED)
#ifdef bottom_xmlwriter
#undef xmlTextWriterStartComment
extern __typeof (xmlTextWriterStartComment) xmlTextWriterStartComment __attribute((alias("xmlTextWriterStartComment__internal_alias")));
#else
#ifndef xmlTextWriterStartComment
extern __typeof (xmlTextWriterStartComment) xmlTextWriterStartComment__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterStartComment xmlTextWriterStartComment__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_WRITER_ENABLED)
#ifdef bottom_xmlwriter
#undef xmlTextWriterStartDTD
extern __typeof (xmlTextWriterStartDTD) xmlTextWriterStartDTD __attribute((alias("xmlTextWriterStartDTD__internal_alias")));
#else
#ifndef xmlTextWriterStartDTD
extern __typeof (xmlTextWriterStartDTD) xmlTextWriterStartDTD__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterStartDTD xmlTextWriterStartDTD__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_WRITER_ENABLED)
#ifdef bottom_xmlwriter
#undef xmlTextWriterStartDTDAttlist
extern __typeof (xmlTextWriterStartDTDAttlist) xmlTextWriterStartDTDAttlist __attribute((alias("xmlTextWriterStartDTDAttlist__internal_alias")));
#else
#ifndef xmlTextWriterStartDTDAttlist
extern __typeof (xmlTextWriterStartDTDAttlist) xmlTextWriterStartDTDAttlist__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterStartDTDAttlist xmlTextWriterStartDTDAttlist__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_WRITER_ENABLED)
#ifdef bottom_xmlwriter
#undef xmlTextWriterStartDTDElement
extern __typeof (xmlTextWriterStartDTDElement) xmlTextWriterStartDTDElement __attribute((alias("xmlTextWriterStartDTDElement__internal_alias")));
#else
#ifndef xmlTextWriterStartDTDElement
extern __typeof (xmlTextWriterStartDTDElement) xmlTextWriterStartDTDElement__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterStartDTDElement xmlTextWriterStartDTDElement__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_WRITER_ENABLED)
#ifdef bottom_xmlwriter
#undef xmlTextWriterStartDTDEntity
extern __typeof (xmlTextWriterStartDTDEntity) xmlTextWriterStartDTDEntity __attribute((alias("xmlTextWriterStartDTDEntity__internal_alias")));
#else
#ifndef xmlTextWriterStartDTDEntity
extern __typeof (xmlTextWriterStartDTDEntity) xmlTextWriterStartDTDEntity__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterStartDTDEntity xmlTextWriterStartDTDEntity__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_WRITER_ENABLED)
#ifdef bottom_xmlwriter
#undef xmlTextWriterStartDocument
extern __typeof (xmlTextWriterStartDocument) xmlTextWriterStartDocument __attribute((alias("xmlTextWriterStartDocument__internal_alias")));
#else
#ifndef xmlTextWriterStartDocument
extern __typeof (xmlTextWriterStartDocument) xmlTextWriterStartDocument__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterStartDocument xmlTextWriterStartDocument__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_WRITER_ENABLED)
#ifdef bottom_xmlwriter
#undef xmlTextWriterStartElement
extern __typeof (xmlTextWriterStartElement) xmlTextWriterStartElement __attribute((alias("xmlTextWriterStartElement__internal_alias")));
#else
#ifndef xmlTextWriterStartElement
extern __typeof (xmlTextWriterStartElement) xmlTextWriterStartElement__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterStartElement xmlTextWriterStartElement__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_WRITER_ENABLED)
#ifdef bottom_xmlwriter
#undef xmlTextWriterStartElementNS
extern __typeof (xmlTextWriterStartElementNS) xmlTextWriterStartElementNS __attribute((alias("xmlTextWriterStartElementNS__internal_alias")));
#else
#ifndef xmlTextWriterStartElementNS
extern __typeof (xmlTextWriterStartElementNS) xmlTextWriterStartElementNS__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterStartElementNS xmlTextWriterStartElementNS__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_WRITER_ENABLED)
#ifdef bottom_xmlwriter
#undef xmlTextWriterStartPI
extern __typeof (xmlTextWriterStartPI) xmlTextWriterStartPI __attribute((alias("xmlTextWriterStartPI__internal_alias")));
#else
#ifndef xmlTextWriterStartPI
extern __typeof (xmlTextWriterStartPI) xmlTextWriterStartPI__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterStartPI xmlTextWriterStartPI__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_WRITER_ENABLED)
#ifdef bottom_xmlwriter
#undef xmlTextWriterWriteAttribute
extern __typeof (xmlTextWriterWriteAttribute) xmlTextWriterWriteAttribute __attribute((alias("xmlTextWriterWriteAttribute__internal_alias")));
#else
#ifndef xmlTextWriterWriteAttribute
extern __typeof (xmlTextWriterWriteAttribute) xmlTextWriterWriteAttribute__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterWriteAttribute xmlTextWriterWriteAttribute__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_WRITER_ENABLED)
#ifdef bottom_xmlwriter
#undef xmlTextWriterWriteAttributeNS
extern __typeof (xmlTextWriterWriteAttributeNS) xmlTextWriterWriteAttributeNS __attribute((alias("xmlTextWriterWriteAttributeNS__internal_alias")));
#else
#ifndef xmlTextWriterWriteAttributeNS
extern __typeof (xmlTextWriterWriteAttributeNS) xmlTextWriterWriteAttributeNS__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterWriteAttributeNS xmlTextWriterWriteAttributeNS__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_WRITER_ENABLED)
#ifdef bottom_xmlwriter
#undef xmlTextWriterWriteBase64
extern __typeof (xmlTextWriterWriteBase64) xmlTextWriterWriteBase64 __attribute((alias("xmlTextWriterWriteBase64__internal_alias")));
#else
#ifndef xmlTextWriterWriteBase64
extern __typeof (xmlTextWriterWriteBase64) xmlTextWriterWriteBase64__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterWriteBase64 xmlTextWriterWriteBase64__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_WRITER_ENABLED)
#ifdef bottom_xmlwriter
#undef xmlTextWriterWriteBinHex
extern __typeof (xmlTextWriterWriteBinHex) xmlTextWriterWriteBinHex __attribute((alias("xmlTextWriterWriteBinHex__internal_alias")));
#else
#ifndef xmlTextWriterWriteBinHex
extern __typeof (xmlTextWriterWriteBinHex) xmlTextWriterWriteBinHex__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterWriteBinHex xmlTextWriterWriteBinHex__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_WRITER_ENABLED)
#ifdef bottom_xmlwriter
#undef xmlTextWriterWriteCDATA
extern __typeof (xmlTextWriterWriteCDATA) xmlTextWriterWriteCDATA __attribute((alias("xmlTextWriterWriteCDATA__internal_alias")));
#else
#ifndef xmlTextWriterWriteCDATA
extern __typeof (xmlTextWriterWriteCDATA) xmlTextWriterWriteCDATA__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterWriteCDATA xmlTextWriterWriteCDATA__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_WRITER_ENABLED)
#ifdef bottom_xmlwriter
#undef xmlTextWriterWriteComment
extern __typeof (xmlTextWriterWriteComment) xmlTextWriterWriteComment __attribute((alias("xmlTextWriterWriteComment__internal_alias")));
#else
#ifndef xmlTextWriterWriteComment
extern __typeof (xmlTextWriterWriteComment) xmlTextWriterWriteComment__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterWriteComment xmlTextWriterWriteComment__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_WRITER_ENABLED)
#ifdef bottom_xmlwriter
#undef xmlTextWriterWriteDTD
extern __typeof (xmlTextWriterWriteDTD) xmlTextWriterWriteDTD __attribute((alias("xmlTextWriterWriteDTD__internal_alias")));
#else
#ifndef xmlTextWriterWriteDTD
extern __typeof (xmlTextWriterWriteDTD) xmlTextWriterWriteDTD__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterWriteDTD xmlTextWriterWriteDTD__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_WRITER_ENABLED)
#ifdef bottom_xmlwriter
#undef xmlTextWriterWriteDTDAttlist
extern __typeof (xmlTextWriterWriteDTDAttlist) xmlTextWriterWriteDTDAttlist __attribute((alias("xmlTextWriterWriteDTDAttlist__internal_alias")));
#else
#ifndef xmlTextWriterWriteDTDAttlist
extern __typeof (xmlTextWriterWriteDTDAttlist) xmlTextWriterWriteDTDAttlist__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterWriteDTDAttlist xmlTextWriterWriteDTDAttlist__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_WRITER_ENABLED)
#ifdef bottom_xmlwriter
#undef xmlTextWriterWriteDTDElement
extern __typeof (xmlTextWriterWriteDTDElement) xmlTextWriterWriteDTDElement __attribute((alias("xmlTextWriterWriteDTDElement__internal_alias")));
#else
#ifndef xmlTextWriterWriteDTDElement
extern __typeof (xmlTextWriterWriteDTDElement) xmlTextWriterWriteDTDElement__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterWriteDTDElement xmlTextWriterWriteDTDElement__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_WRITER_ENABLED)
#ifdef bottom_xmlwriter
#undef xmlTextWriterWriteDTDEntity
extern __typeof (xmlTextWriterWriteDTDEntity) xmlTextWriterWriteDTDEntity __attribute((alias("xmlTextWriterWriteDTDEntity__internal_alias")));
#else
#ifndef xmlTextWriterWriteDTDEntity
extern __typeof (xmlTextWriterWriteDTDEntity) xmlTextWriterWriteDTDEntity__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterWriteDTDEntity xmlTextWriterWriteDTDEntity__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_WRITER_ENABLED)
#ifdef bottom_xmlwriter
#undef xmlTextWriterWriteDTDExternalEntity
extern __typeof (xmlTextWriterWriteDTDExternalEntity) xmlTextWriterWriteDTDExternalEntity __attribute((alias("xmlTextWriterWriteDTDExternalEntity__internal_alias")));
#else
#ifndef xmlTextWriterWriteDTDExternalEntity
extern __typeof (xmlTextWriterWriteDTDExternalEntity) xmlTextWriterWriteDTDExternalEntity__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterWriteDTDExternalEntity xmlTextWriterWriteDTDExternalEntity__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_WRITER_ENABLED)
#ifdef bottom_xmlwriter
#undef xmlTextWriterWriteDTDExternalEntityContents
extern __typeof (xmlTextWriterWriteDTDExternalEntityContents) xmlTextWriterWriteDTDExternalEntityContents __attribute((alias("xmlTextWriterWriteDTDExternalEntityContents__internal_alias")));
#else
#ifndef xmlTextWriterWriteDTDExternalEntityContents
extern __typeof (xmlTextWriterWriteDTDExternalEntityContents) xmlTextWriterWriteDTDExternalEntityContents__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterWriteDTDExternalEntityContents xmlTextWriterWriteDTDExternalEntityContents__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_WRITER_ENABLED)
#ifdef bottom_xmlwriter
#undef xmlTextWriterWriteDTDInternalEntity
extern __typeof (xmlTextWriterWriteDTDInternalEntity) xmlTextWriterWriteDTDInternalEntity __attribute((alias("xmlTextWriterWriteDTDInternalEntity__internal_alias")));
#else
#ifndef xmlTextWriterWriteDTDInternalEntity
extern __typeof (xmlTextWriterWriteDTDInternalEntity) xmlTextWriterWriteDTDInternalEntity__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterWriteDTDInternalEntity xmlTextWriterWriteDTDInternalEntity__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_WRITER_ENABLED)
#ifdef bottom_xmlwriter
#undef xmlTextWriterWriteDTDNotation
extern __typeof (xmlTextWriterWriteDTDNotation) xmlTextWriterWriteDTDNotation __attribute((alias("xmlTextWriterWriteDTDNotation__internal_alias")));
#else
#ifndef xmlTextWriterWriteDTDNotation
extern __typeof (xmlTextWriterWriteDTDNotation) xmlTextWriterWriteDTDNotation__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterWriteDTDNotation xmlTextWriterWriteDTDNotation__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_WRITER_ENABLED)
#ifdef bottom_xmlwriter
#undef xmlTextWriterWriteElement
extern __typeof (xmlTextWriterWriteElement) xmlTextWriterWriteElement __attribute((alias("xmlTextWriterWriteElement__internal_alias")));
#else
#ifndef xmlTextWriterWriteElement
extern __typeof (xmlTextWriterWriteElement) xmlTextWriterWriteElement__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterWriteElement xmlTextWriterWriteElement__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_WRITER_ENABLED)
#ifdef bottom_xmlwriter
#undef xmlTextWriterWriteElementNS
extern __typeof (xmlTextWriterWriteElementNS) xmlTextWriterWriteElementNS __attribute((alias("xmlTextWriterWriteElementNS__internal_alias")));
#else
#ifndef xmlTextWriterWriteElementNS
extern __typeof (xmlTextWriterWriteElementNS) xmlTextWriterWriteElementNS__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterWriteElementNS xmlTextWriterWriteElementNS__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_WRITER_ENABLED)
#ifdef bottom_xmlwriter
#undef xmlTextWriterWriteFormatAttribute
extern __typeof (xmlTextWriterWriteFormatAttribute) xmlTextWriterWriteFormatAttribute __attribute((alias("xmlTextWriterWriteFormatAttribute__internal_alias")));
#else
#ifndef xmlTextWriterWriteFormatAttribute
extern __typeof (xmlTextWriterWriteFormatAttribute) xmlTextWriterWriteFormatAttribute__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterWriteFormatAttribute xmlTextWriterWriteFormatAttribute__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_WRITER_ENABLED)
#ifdef bottom_xmlwriter
#undef xmlTextWriterWriteFormatAttributeNS
extern __typeof (xmlTextWriterWriteFormatAttributeNS) xmlTextWriterWriteFormatAttributeNS __attribute((alias("xmlTextWriterWriteFormatAttributeNS__internal_alias")));
#else
#ifndef xmlTextWriterWriteFormatAttributeNS
extern __typeof (xmlTextWriterWriteFormatAttributeNS) xmlTextWriterWriteFormatAttributeNS__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterWriteFormatAttributeNS xmlTextWriterWriteFormatAttributeNS__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_WRITER_ENABLED)
#ifdef bottom_xmlwriter
#undef xmlTextWriterWriteFormatCDATA
extern __typeof (xmlTextWriterWriteFormatCDATA) xmlTextWriterWriteFormatCDATA __attribute((alias("xmlTextWriterWriteFormatCDATA__internal_alias")));
#else
#ifndef xmlTextWriterWriteFormatCDATA
extern __typeof (xmlTextWriterWriteFormatCDATA) xmlTextWriterWriteFormatCDATA__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterWriteFormatCDATA xmlTextWriterWriteFormatCDATA__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_WRITER_ENABLED)
#ifdef bottom_xmlwriter
#undef xmlTextWriterWriteFormatComment
extern __typeof (xmlTextWriterWriteFormatComment) xmlTextWriterWriteFormatComment __attribute((alias("xmlTextWriterWriteFormatComment__internal_alias")));
#else
#ifndef xmlTextWriterWriteFormatComment
extern __typeof (xmlTextWriterWriteFormatComment) xmlTextWriterWriteFormatComment__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterWriteFormatComment xmlTextWriterWriteFormatComment__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_WRITER_ENABLED)
#ifdef bottom_xmlwriter
#undef xmlTextWriterWriteFormatDTD
extern __typeof (xmlTextWriterWriteFormatDTD) xmlTextWriterWriteFormatDTD __attribute((alias("xmlTextWriterWriteFormatDTD__internal_alias")));
#else
#ifndef xmlTextWriterWriteFormatDTD
extern __typeof (xmlTextWriterWriteFormatDTD) xmlTextWriterWriteFormatDTD__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterWriteFormatDTD xmlTextWriterWriteFormatDTD__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_WRITER_ENABLED)
#ifdef bottom_xmlwriter
#undef xmlTextWriterWriteFormatDTDAttlist
extern __typeof (xmlTextWriterWriteFormatDTDAttlist) xmlTextWriterWriteFormatDTDAttlist __attribute((alias("xmlTextWriterWriteFormatDTDAttlist__internal_alias")));
#else
#ifndef xmlTextWriterWriteFormatDTDAttlist
extern __typeof (xmlTextWriterWriteFormatDTDAttlist) xmlTextWriterWriteFormatDTDAttlist__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterWriteFormatDTDAttlist xmlTextWriterWriteFormatDTDAttlist__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_WRITER_ENABLED)
#ifdef bottom_xmlwriter
#undef xmlTextWriterWriteFormatDTDElement
extern __typeof (xmlTextWriterWriteFormatDTDElement) xmlTextWriterWriteFormatDTDElement __attribute((alias("xmlTextWriterWriteFormatDTDElement__internal_alias")));
#else
#ifndef xmlTextWriterWriteFormatDTDElement
extern __typeof (xmlTextWriterWriteFormatDTDElement) xmlTextWriterWriteFormatDTDElement__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterWriteFormatDTDElement xmlTextWriterWriteFormatDTDElement__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_WRITER_ENABLED)
#ifdef bottom_xmlwriter
#undef xmlTextWriterWriteFormatDTDInternalEntity
extern __typeof (xmlTextWriterWriteFormatDTDInternalEntity) xmlTextWriterWriteFormatDTDInternalEntity __attribute((alias("xmlTextWriterWriteFormatDTDInternalEntity__internal_alias")));
#else
#ifndef xmlTextWriterWriteFormatDTDInternalEntity
extern __typeof (xmlTextWriterWriteFormatDTDInternalEntity) xmlTextWriterWriteFormatDTDInternalEntity__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterWriteFormatDTDInternalEntity xmlTextWriterWriteFormatDTDInternalEntity__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_WRITER_ENABLED)
#ifdef bottom_xmlwriter
#undef xmlTextWriterWriteFormatElement
extern __typeof (xmlTextWriterWriteFormatElement) xmlTextWriterWriteFormatElement __attribute((alias("xmlTextWriterWriteFormatElement__internal_alias")));
#else
#ifndef xmlTextWriterWriteFormatElement
extern __typeof (xmlTextWriterWriteFormatElement) xmlTextWriterWriteFormatElement__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterWriteFormatElement xmlTextWriterWriteFormatElement__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_WRITER_ENABLED)
#ifdef bottom_xmlwriter
#undef xmlTextWriterWriteFormatElementNS
extern __typeof (xmlTextWriterWriteFormatElementNS) xmlTextWriterWriteFormatElementNS __attribute((alias("xmlTextWriterWriteFormatElementNS__internal_alias")));
#else
#ifndef xmlTextWriterWriteFormatElementNS
extern __typeof (xmlTextWriterWriteFormatElementNS) xmlTextWriterWriteFormatElementNS__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterWriteFormatElementNS xmlTextWriterWriteFormatElementNS__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_WRITER_ENABLED)
#ifdef bottom_xmlwriter
#undef xmlTextWriterWriteFormatPI
extern __typeof (xmlTextWriterWriteFormatPI) xmlTextWriterWriteFormatPI __attribute((alias("xmlTextWriterWriteFormatPI__internal_alias")));
#else
#ifndef xmlTextWriterWriteFormatPI
extern __typeof (xmlTextWriterWriteFormatPI) xmlTextWriterWriteFormatPI__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterWriteFormatPI xmlTextWriterWriteFormatPI__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_WRITER_ENABLED)
#ifdef bottom_xmlwriter
#undef xmlTextWriterWriteFormatRaw
extern __typeof (xmlTextWriterWriteFormatRaw) xmlTextWriterWriteFormatRaw __attribute((alias("xmlTextWriterWriteFormatRaw__internal_alias")));
#else
#ifndef xmlTextWriterWriteFormatRaw
extern __typeof (xmlTextWriterWriteFormatRaw) xmlTextWriterWriteFormatRaw__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterWriteFormatRaw xmlTextWriterWriteFormatRaw__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_WRITER_ENABLED)
#ifdef bottom_xmlwriter
#undef xmlTextWriterWriteFormatString
extern __typeof (xmlTextWriterWriteFormatString) xmlTextWriterWriteFormatString __attribute((alias("xmlTextWriterWriteFormatString__internal_alias")));
#else
#ifndef xmlTextWriterWriteFormatString
extern __typeof (xmlTextWriterWriteFormatString) xmlTextWriterWriteFormatString__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterWriteFormatString xmlTextWriterWriteFormatString__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_WRITER_ENABLED)
#ifdef bottom_xmlwriter
#undef xmlTextWriterWritePI
extern __typeof (xmlTextWriterWritePI) xmlTextWriterWritePI __attribute((alias("xmlTextWriterWritePI__internal_alias")));
#else
#ifndef xmlTextWriterWritePI
extern __typeof (xmlTextWriterWritePI) xmlTextWriterWritePI__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterWritePI xmlTextWriterWritePI__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_WRITER_ENABLED)
#ifdef bottom_xmlwriter
#undef xmlTextWriterWriteRaw
extern __typeof (xmlTextWriterWriteRaw) xmlTextWriterWriteRaw __attribute((alias("xmlTextWriterWriteRaw__internal_alias")));
#else
#ifndef xmlTextWriterWriteRaw
extern __typeof (xmlTextWriterWriteRaw) xmlTextWriterWriteRaw__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterWriteRaw xmlTextWriterWriteRaw__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_WRITER_ENABLED)
#ifdef bottom_xmlwriter
#undef xmlTextWriterWriteRawLen
extern __typeof (xmlTextWriterWriteRawLen) xmlTextWriterWriteRawLen __attribute((alias("xmlTextWriterWriteRawLen__internal_alias")));
#else
#ifndef xmlTextWriterWriteRawLen
extern __typeof (xmlTextWriterWriteRawLen) xmlTextWriterWriteRawLen__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterWriteRawLen xmlTextWriterWriteRawLen__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_WRITER_ENABLED)
#ifdef bottom_xmlwriter
#undef xmlTextWriterWriteString
extern __typeof (xmlTextWriterWriteString) xmlTextWriterWriteString __attribute((alias("xmlTextWriterWriteString__internal_alias")));
#else
#ifndef xmlTextWriterWriteString
extern __typeof (xmlTextWriterWriteString) xmlTextWriterWriteString__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterWriteString xmlTextWriterWriteString__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_WRITER_ENABLED)
#ifdef bottom_xmlwriter
#undef xmlTextWriterWriteVFormatAttribute
extern __typeof (xmlTextWriterWriteVFormatAttribute) xmlTextWriterWriteVFormatAttribute __attribute((alias("xmlTextWriterWriteVFormatAttribute__internal_alias")));
#else
#ifndef xmlTextWriterWriteVFormatAttribute
extern __typeof (xmlTextWriterWriteVFormatAttribute) xmlTextWriterWriteVFormatAttribute__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterWriteVFormatAttribute xmlTextWriterWriteVFormatAttribute__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_WRITER_ENABLED)
#ifdef bottom_xmlwriter
#undef xmlTextWriterWriteVFormatAttributeNS
extern __typeof (xmlTextWriterWriteVFormatAttributeNS) xmlTextWriterWriteVFormatAttributeNS __attribute((alias("xmlTextWriterWriteVFormatAttributeNS__internal_alias")));
#else
#ifndef xmlTextWriterWriteVFormatAttributeNS
extern __typeof (xmlTextWriterWriteVFormatAttributeNS) xmlTextWriterWriteVFormatAttributeNS__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterWriteVFormatAttributeNS xmlTextWriterWriteVFormatAttributeNS__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_WRITER_ENABLED)
#ifdef bottom_xmlwriter
#undef xmlTextWriterWriteVFormatCDATA
extern __typeof (xmlTextWriterWriteVFormatCDATA) xmlTextWriterWriteVFormatCDATA __attribute((alias("xmlTextWriterWriteVFormatCDATA__internal_alias")));
#else
#ifndef xmlTextWriterWriteVFormatCDATA
extern __typeof (xmlTextWriterWriteVFormatCDATA) xmlTextWriterWriteVFormatCDATA__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterWriteVFormatCDATA xmlTextWriterWriteVFormatCDATA__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_WRITER_ENABLED)
#ifdef bottom_xmlwriter
#undef xmlTextWriterWriteVFormatComment
extern __typeof (xmlTextWriterWriteVFormatComment) xmlTextWriterWriteVFormatComment __attribute((alias("xmlTextWriterWriteVFormatComment__internal_alias")));
#else
#ifndef xmlTextWriterWriteVFormatComment
extern __typeof (xmlTextWriterWriteVFormatComment) xmlTextWriterWriteVFormatComment__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterWriteVFormatComment xmlTextWriterWriteVFormatComment__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_WRITER_ENABLED)
#ifdef bottom_xmlwriter
#undef xmlTextWriterWriteVFormatDTD
extern __typeof (xmlTextWriterWriteVFormatDTD) xmlTextWriterWriteVFormatDTD __attribute((alias("xmlTextWriterWriteVFormatDTD__internal_alias")));
#else
#ifndef xmlTextWriterWriteVFormatDTD
extern __typeof (xmlTextWriterWriteVFormatDTD) xmlTextWriterWriteVFormatDTD__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterWriteVFormatDTD xmlTextWriterWriteVFormatDTD__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_WRITER_ENABLED)
#ifdef bottom_xmlwriter
#undef xmlTextWriterWriteVFormatDTDAttlist
extern __typeof (xmlTextWriterWriteVFormatDTDAttlist) xmlTextWriterWriteVFormatDTDAttlist __attribute((alias("xmlTextWriterWriteVFormatDTDAttlist__internal_alias")));
#else
#ifndef xmlTextWriterWriteVFormatDTDAttlist
extern __typeof (xmlTextWriterWriteVFormatDTDAttlist) xmlTextWriterWriteVFormatDTDAttlist__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterWriteVFormatDTDAttlist xmlTextWriterWriteVFormatDTDAttlist__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_WRITER_ENABLED)
#ifdef bottom_xmlwriter
#undef xmlTextWriterWriteVFormatDTDElement
extern __typeof (xmlTextWriterWriteVFormatDTDElement) xmlTextWriterWriteVFormatDTDElement __attribute((alias("xmlTextWriterWriteVFormatDTDElement__internal_alias")));
#else
#ifndef xmlTextWriterWriteVFormatDTDElement
extern __typeof (xmlTextWriterWriteVFormatDTDElement) xmlTextWriterWriteVFormatDTDElement__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterWriteVFormatDTDElement xmlTextWriterWriteVFormatDTDElement__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_WRITER_ENABLED)
#ifdef bottom_xmlwriter
#undef xmlTextWriterWriteVFormatDTDInternalEntity
extern __typeof (xmlTextWriterWriteVFormatDTDInternalEntity) xmlTextWriterWriteVFormatDTDInternalEntity __attribute((alias("xmlTextWriterWriteVFormatDTDInternalEntity__internal_alias")));
#else
#ifndef xmlTextWriterWriteVFormatDTDInternalEntity
extern __typeof (xmlTextWriterWriteVFormatDTDInternalEntity) xmlTextWriterWriteVFormatDTDInternalEntity__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterWriteVFormatDTDInternalEntity xmlTextWriterWriteVFormatDTDInternalEntity__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_WRITER_ENABLED)
#ifdef bottom_xmlwriter
#undef xmlTextWriterWriteVFormatElement
extern __typeof (xmlTextWriterWriteVFormatElement) xmlTextWriterWriteVFormatElement __attribute((alias("xmlTextWriterWriteVFormatElement__internal_alias")));
#else
#ifndef xmlTextWriterWriteVFormatElement
extern __typeof (xmlTextWriterWriteVFormatElement) xmlTextWriterWriteVFormatElement__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterWriteVFormatElement xmlTextWriterWriteVFormatElement__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_WRITER_ENABLED)
#ifdef bottom_xmlwriter
#undef xmlTextWriterWriteVFormatElementNS
extern __typeof (xmlTextWriterWriteVFormatElementNS) xmlTextWriterWriteVFormatElementNS __attribute((alias("xmlTextWriterWriteVFormatElementNS__internal_alias")));
#else
#ifndef xmlTextWriterWriteVFormatElementNS
extern __typeof (xmlTextWriterWriteVFormatElementNS) xmlTextWriterWriteVFormatElementNS__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterWriteVFormatElementNS xmlTextWriterWriteVFormatElementNS__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_WRITER_ENABLED)
#ifdef bottom_xmlwriter
#undef xmlTextWriterWriteVFormatPI
extern __typeof (xmlTextWriterWriteVFormatPI) xmlTextWriterWriteVFormatPI __attribute((alias("xmlTextWriterWriteVFormatPI__internal_alias")));
#else
#ifndef xmlTextWriterWriteVFormatPI
extern __typeof (xmlTextWriterWriteVFormatPI) xmlTextWriterWriteVFormatPI__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterWriteVFormatPI xmlTextWriterWriteVFormatPI__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_WRITER_ENABLED)
#ifdef bottom_xmlwriter
#undef xmlTextWriterWriteVFormatRaw
extern __typeof (xmlTextWriterWriteVFormatRaw) xmlTextWriterWriteVFormatRaw __attribute((alias("xmlTextWriterWriteVFormatRaw__internal_alias")));
#else
#ifndef xmlTextWriterWriteVFormatRaw
extern __typeof (xmlTextWriterWriteVFormatRaw) xmlTextWriterWriteVFormatRaw__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterWriteVFormatRaw xmlTextWriterWriteVFormatRaw__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_WRITER_ENABLED)
#ifdef bottom_xmlwriter
#undef xmlTextWriterWriteVFormatString
extern __typeof (xmlTextWriterWriteVFormatString) xmlTextWriterWriteVFormatString __attribute((alias("xmlTextWriterWriteVFormatString__internal_alias")));
#else
#ifndef xmlTextWriterWriteVFormatString
extern __typeof (xmlTextWriterWriteVFormatString) xmlTextWriterWriteVFormatString__internal_alias __attribute((visibility("hidden")));
#define xmlTextWriterWriteVFormatString xmlTextWriterWriteVFormatString__internal_alias
#endif
#endif
#endif

#ifdef bottom_globals
#undef xmlThrDefBufferAllocScheme
extern __typeof (xmlThrDefBufferAllocScheme) xmlThrDefBufferAllocScheme __attribute((alias("xmlThrDefBufferAllocScheme__internal_alias")));
#else
#ifndef xmlThrDefBufferAllocScheme
extern __typeof (xmlThrDefBufferAllocScheme) xmlThrDefBufferAllocScheme__internal_alias __attribute((visibility("hidden")));
#define xmlThrDefBufferAllocScheme xmlThrDefBufferAllocScheme__internal_alias
#endif
#endif

#ifdef bottom_globals
#undef xmlThrDefDefaultBufferSize
extern __typeof (xmlThrDefDefaultBufferSize) xmlThrDefDefaultBufferSize __attribute((alias("xmlThrDefDefaultBufferSize__internal_alias")));
#else
#ifndef xmlThrDefDefaultBufferSize
extern __typeof (xmlThrDefDefaultBufferSize) xmlThrDefDefaultBufferSize__internal_alias __attribute((visibility("hidden")));
#define xmlThrDefDefaultBufferSize xmlThrDefDefaultBufferSize__internal_alias
#endif
#endif

#ifdef bottom_globals
#undef xmlThrDefDeregisterNodeDefault
extern __typeof (xmlThrDefDeregisterNodeDefault) xmlThrDefDeregisterNodeDefault __attribute((alias("xmlThrDefDeregisterNodeDefault__internal_alias")));
#else
#ifndef xmlThrDefDeregisterNodeDefault
extern __typeof (xmlThrDefDeregisterNodeDefault) xmlThrDefDeregisterNodeDefault__internal_alias __attribute((visibility("hidden")));
#define xmlThrDefDeregisterNodeDefault xmlThrDefDeregisterNodeDefault__internal_alias
#endif
#endif

#ifdef bottom_globals
#undef xmlThrDefDoValidityCheckingDefaultValue
extern __typeof (xmlThrDefDoValidityCheckingDefaultValue) xmlThrDefDoValidityCheckingDefaultValue __attribute((alias("xmlThrDefDoValidityCheckingDefaultValue__internal_alias")));
#else
#ifndef xmlThrDefDoValidityCheckingDefaultValue
extern __typeof (xmlThrDefDoValidityCheckingDefaultValue) xmlThrDefDoValidityCheckingDefaultValue__internal_alias __attribute((visibility("hidden")));
#define xmlThrDefDoValidityCheckingDefaultValue xmlThrDefDoValidityCheckingDefaultValue__internal_alias
#endif
#endif

#ifdef bottom_globals
#undef xmlThrDefGetWarningsDefaultValue
extern __typeof (xmlThrDefGetWarningsDefaultValue) xmlThrDefGetWarningsDefaultValue __attribute((alias("xmlThrDefGetWarningsDefaultValue__internal_alias")));
#else
#ifndef xmlThrDefGetWarningsDefaultValue
extern __typeof (xmlThrDefGetWarningsDefaultValue) xmlThrDefGetWarningsDefaultValue__internal_alias __attribute((visibility("hidden")));
#define xmlThrDefGetWarningsDefaultValue xmlThrDefGetWarningsDefaultValue__internal_alias
#endif
#endif

#ifdef bottom_globals
#undef xmlThrDefIndentTreeOutput
extern __typeof (xmlThrDefIndentTreeOutput) xmlThrDefIndentTreeOutput __attribute((alias("xmlThrDefIndentTreeOutput__internal_alias")));
#else
#ifndef xmlThrDefIndentTreeOutput
extern __typeof (xmlThrDefIndentTreeOutput) xmlThrDefIndentTreeOutput__internal_alias __attribute((visibility("hidden")));
#define xmlThrDefIndentTreeOutput xmlThrDefIndentTreeOutput__internal_alias
#endif
#endif

#ifdef bottom_globals
#undef xmlThrDefKeepBlanksDefaultValue
extern __typeof (xmlThrDefKeepBlanksDefaultValue) xmlThrDefKeepBlanksDefaultValue __attribute((alias("xmlThrDefKeepBlanksDefaultValue__internal_alias")));
#else
#ifndef xmlThrDefKeepBlanksDefaultValue
extern __typeof (xmlThrDefKeepBlanksDefaultValue) xmlThrDefKeepBlanksDefaultValue__internal_alias __attribute((visibility("hidden")));
#define xmlThrDefKeepBlanksDefaultValue xmlThrDefKeepBlanksDefaultValue__internal_alias
#endif
#endif

#ifdef bottom_globals
#undef xmlThrDefLineNumbersDefaultValue
extern __typeof (xmlThrDefLineNumbersDefaultValue) xmlThrDefLineNumbersDefaultValue __attribute((alias("xmlThrDefLineNumbersDefaultValue__internal_alias")));
#else
#ifndef xmlThrDefLineNumbersDefaultValue
extern __typeof (xmlThrDefLineNumbersDefaultValue) xmlThrDefLineNumbersDefaultValue__internal_alias __attribute((visibility("hidden")));
#define xmlThrDefLineNumbersDefaultValue xmlThrDefLineNumbersDefaultValue__internal_alias
#endif
#endif

#ifdef bottom_globals
#undef xmlThrDefLoadExtDtdDefaultValue
extern __typeof (xmlThrDefLoadExtDtdDefaultValue) xmlThrDefLoadExtDtdDefaultValue __attribute((alias("xmlThrDefLoadExtDtdDefaultValue__internal_alias")));
#else
#ifndef xmlThrDefLoadExtDtdDefaultValue
extern __typeof (xmlThrDefLoadExtDtdDefaultValue) xmlThrDefLoadExtDtdDefaultValue__internal_alias __attribute((visibility("hidden")));
#define xmlThrDefLoadExtDtdDefaultValue xmlThrDefLoadExtDtdDefaultValue__internal_alias
#endif
#endif

#ifdef bottom_globals
#undef xmlThrDefOutputBufferCreateFilenameDefault
extern __typeof (xmlThrDefOutputBufferCreateFilenameDefault) xmlThrDefOutputBufferCreateFilenameDefault __attribute((alias("xmlThrDefOutputBufferCreateFilenameDefault__internal_alias")));
#else
#ifndef xmlThrDefOutputBufferCreateFilenameDefault
extern __typeof (xmlThrDefOutputBufferCreateFilenameDefault) xmlThrDefOutputBufferCreateFilenameDefault__internal_alias __attribute((visibility("hidden")));
#define xmlThrDefOutputBufferCreateFilenameDefault xmlThrDefOutputBufferCreateFilenameDefault__internal_alias
#endif
#endif

#ifdef bottom_globals
#undef xmlThrDefParserDebugEntities
extern __typeof (xmlThrDefParserDebugEntities) xmlThrDefParserDebugEntities __attribute((alias("xmlThrDefParserDebugEntities__internal_alias")));
#else
#ifndef xmlThrDefParserDebugEntities
extern __typeof (xmlThrDefParserDebugEntities) xmlThrDefParserDebugEntities__internal_alias __attribute((visibility("hidden")));
#define xmlThrDefParserDebugEntities xmlThrDefParserDebugEntities__internal_alias
#endif
#endif

#ifdef bottom_globals
#undef xmlThrDefParserInputBufferCreateFilenameDefault
extern __typeof (xmlThrDefParserInputBufferCreateFilenameDefault) xmlThrDefParserInputBufferCreateFilenameDefault __attribute((alias("xmlThrDefParserInputBufferCreateFilenameDefault__internal_alias")));
#else
#ifndef xmlThrDefParserInputBufferCreateFilenameDefault
extern __typeof (xmlThrDefParserInputBufferCreateFilenameDefault) xmlThrDefParserInputBufferCreateFilenameDefault__internal_alias __attribute((visibility("hidden")));
#define xmlThrDefParserInputBufferCreateFilenameDefault xmlThrDefParserInputBufferCreateFilenameDefault__internal_alias
#endif
#endif

#ifdef bottom_globals
#undef xmlThrDefPedanticParserDefaultValue
extern __typeof (xmlThrDefPedanticParserDefaultValue) xmlThrDefPedanticParserDefaultValue __attribute((alias("xmlThrDefPedanticParserDefaultValue__internal_alias")));
#else
#ifndef xmlThrDefPedanticParserDefaultValue
extern __typeof (xmlThrDefPedanticParserDefaultValue) xmlThrDefPedanticParserDefaultValue__internal_alias __attribute((visibility("hidden")));
#define xmlThrDefPedanticParserDefaultValue xmlThrDefPedanticParserDefaultValue__internal_alias
#endif
#endif

#ifdef bottom_globals
#undef xmlThrDefRegisterNodeDefault
extern __typeof (xmlThrDefRegisterNodeDefault) xmlThrDefRegisterNodeDefault __attribute((alias("xmlThrDefRegisterNodeDefault__internal_alias")));
#else
#ifndef xmlThrDefRegisterNodeDefault
extern __typeof (xmlThrDefRegisterNodeDefault) xmlThrDefRegisterNodeDefault__internal_alias __attribute((visibility("hidden")));
#define xmlThrDefRegisterNodeDefault xmlThrDefRegisterNodeDefault__internal_alias
#endif
#endif

#ifdef bottom_globals
#undef xmlThrDefSaveNoEmptyTags
extern __typeof (xmlThrDefSaveNoEmptyTags) xmlThrDefSaveNoEmptyTags __attribute((alias("xmlThrDefSaveNoEmptyTags__internal_alias")));
#else
#ifndef xmlThrDefSaveNoEmptyTags
extern __typeof (xmlThrDefSaveNoEmptyTags) xmlThrDefSaveNoEmptyTags__internal_alias __attribute((visibility("hidden")));
#define xmlThrDefSaveNoEmptyTags xmlThrDefSaveNoEmptyTags__internal_alias
#endif
#endif

#ifdef bottom_globals
#undef xmlThrDefSetGenericErrorFunc
extern __typeof (xmlThrDefSetGenericErrorFunc) xmlThrDefSetGenericErrorFunc __attribute((alias("xmlThrDefSetGenericErrorFunc__internal_alias")));
#else
#ifndef xmlThrDefSetGenericErrorFunc
extern __typeof (xmlThrDefSetGenericErrorFunc) xmlThrDefSetGenericErrorFunc__internal_alias __attribute((visibility("hidden")));
#define xmlThrDefSetGenericErrorFunc xmlThrDefSetGenericErrorFunc__internal_alias
#endif
#endif

#ifdef bottom_globals
#undef xmlThrDefSetStructuredErrorFunc
extern __typeof (xmlThrDefSetStructuredErrorFunc) xmlThrDefSetStructuredErrorFunc __attribute((alias("xmlThrDefSetStructuredErrorFunc__internal_alias")));
#else
#ifndef xmlThrDefSetStructuredErrorFunc
extern __typeof (xmlThrDefSetStructuredErrorFunc) xmlThrDefSetStructuredErrorFunc__internal_alias __attribute((visibility("hidden")));
#define xmlThrDefSetStructuredErrorFunc xmlThrDefSetStructuredErrorFunc__internal_alias
#endif
#endif

#ifdef bottom_globals
#undef xmlThrDefSubstituteEntitiesDefaultValue
extern __typeof (xmlThrDefSubstituteEntitiesDefaultValue) xmlThrDefSubstituteEntitiesDefaultValue __attribute((alias("xmlThrDefSubstituteEntitiesDefaultValue__internal_alias")));
#else
#ifndef xmlThrDefSubstituteEntitiesDefaultValue
extern __typeof (xmlThrDefSubstituteEntitiesDefaultValue) xmlThrDefSubstituteEntitiesDefaultValue__internal_alias __attribute((visibility("hidden")));
#define xmlThrDefSubstituteEntitiesDefaultValue xmlThrDefSubstituteEntitiesDefaultValue__internal_alias
#endif
#endif

#ifdef bottom_globals
#undef xmlThrDefTreeIndentString
extern __typeof (xmlThrDefTreeIndentString) xmlThrDefTreeIndentString __attribute((alias("xmlThrDefTreeIndentString__internal_alias")));
#else
#ifndef xmlThrDefTreeIndentString
extern __typeof (xmlThrDefTreeIndentString) xmlThrDefTreeIndentString__internal_alias __attribute((visibility("hidden")));
#define xmlThrDefTreeIndentString xmlThrDefTreeIndentString__internal_alias
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsAegeanNumbers
extern __typeof (xmlUCSIsAegeanNumbers) xmlUCSIsAegeanNumbers __attribute((alias("xmlUCSIsAegeanNumbers__internal_alias")));
#else
#ifndef xmlUCSIsAegeanNumbers
extern __typeof (xmlUCSIsAegeanNumbers) xmlUCSIsAegeanNumbers__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsAegeanNumbers xmlUCSIsAegeanNumbers__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsAlphabeticPresentationForms
extern __typeof (xmlUCSIsAlphabeticPresentationForms) xmlUCSIsAlphabeticPresentationForms __attribute((alias("xmlUCSIsAlphabeticPresentationForms__internal_alias")));
#else
#ifndef xmlUCSIsAlphabeticPresentationForms
extern __typeof (xmlUCSIsAlphabeticPresentationForms) xmlUCSIsAlphabeticPresentationForms__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsAlphabeticPresentationForms xmlUCSIsAlphabeticPresentationForms__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsArabic
extern __typeof (xmlUCSIsArabic) xmlUCSIsArabic __attribute((alias("xmlUCSIsArabic__internal_alias")));
#else
#ifndef xmlUCSIsArabic
extern __typeof (xmlUCSIsArabic) xmlUCSIsArabic__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsArabic xmlUCSIsArabic__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsArabicPresentationFormsA
extern __typeof (xmlUCSIsArabicPresentationFormsA) xmlUCSIsArabicPresentationFormsA __attribute((alias("xmlUCSIsArabicPresentationFormsA__internal_alias")));
#else
#ifndef xmlUCSIsArabicPresentationFormsA
extern __typeof (xmlUCSIsArabicPresentationFormsA) xmlUCSIsArabicPresentationFormsA__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsArabicPresentationFormsA xmlUCSIsArabicPresentationFormsA__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsArabicPresentationFormsB
extern __typeof (xmlUCSIsArabicPresentationFormsB) xmlUCSIsArabicPresentationFormsB __attribute((alias("xmlUCSIsArabicPresentationFormsB__internal_alias")));
#else
#ifndef xmlUCSIsArabicPresentationFormsB
extern __typeof (xmlUCSIsArabicPresentationFormsB) xmlUCSIsArabicPresentationFormsB__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsArabicPresentationFormsB xmlUCSIsArabicPresentationFormsB__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsArmenian
extern __typeof (xmlUCSIsArmenian) xmlUCSIsArmenian __attribute((alias("xmlUCSIsArmenian__internal_alias")));
#else
#ifndef xmlUCSIsArmenian
extern __typeof (xmlUCSIsArmenian) xmlUCSIsArmenian__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsArmenian xmlUCSIsArmenian__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsArrows
extern __typeof (xmlUCSIsArrows) xmlUCSIsArrows __attribute((alias("xmlUCSIsArrows__internal_alias")));
#else
#ifndef xmlUCSIsArrows
extern __typeof (xmlUCSIsArrows) xmlUCSIsArrows__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsArrows xmlUCSIsArrows__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsBasicLatin
extern __typeof (xmlUCSIsBasicLatin) xmlUCSIsBasicLatin __attribute((alias("xmlUCSIsBasicLatin__internal_alias")));
#else
#ifndef xmlUCSIsBasicLatin
extern __typeof (xmlUCSIsBasicLatin) xmlUCSIsBasicLatin__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsBasicLatin xmlUCSIsBasicLatin__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsBengali
extern __typeof (xmlUCSIsBengali) xmlUCSIsBengali __attribute((alias("xmlUCSIsBengali__internal_alias")));
#else
#ifndef xmlUCSIsBengali
extern __typeof (xmlUCSIsBengali) xmlUCSIsBengali__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsBengali xmlUCSIsBengali__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsBlock
extern __typeof (xmlUCSIsBlock) xmlUCSIsBlock __attribute((alias("xmlUCSIsBlock__internal_alias")));
#else
#ifndef xmlUCSIsBlock
extern __typeof (xmlUCSIsBlock) xmlUCSIsBlock__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsBlock xmlUCSIsBlock__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsBlockElements
extern __typeof (xmlUCSIsBlockElements) xmlUCSIsBlockElements __attribute((alias("xmlUCSIsBlockElements__internal_alias")));
#else
#ifndef xmlUCSIsBlockElements
extern __typeof (xmlUCSIsBlockElements) xmlUCSIsBlockElements__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsBlockElements xmlUCSIsBlockElements__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsBopomofo
extern __typeof (xmlUCSIsBopomofo) xmlUCSIsBopomofo __attribute((alias("xmlUCSIsBopomofo__internal_alias")));
#else
#ifndef xmlUCSIsBopomofo
extern __typeof (xmlUCSIsBopomofo) xmlUCSIsBopomofo__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsBopomofo xmlUCSIsBopomofo__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsBopomofoExtended
extern __typeof (xmlUCSIsBopomofoExtended) xmlUCSIsBopomofoExtended __attribute((alias("xmlUCSIsBopomofoExtended__internal_alias")));
#else
#ifndef xmlUCSIsBopomofoExtended
extern __typeof (xmlUCSIsBopomofoExtended) xmlUCSIsBopomofoExtended__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsBopomofoExtended xmlUCSIsBopomofoExtended__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsBoxDrawing
extern __typeof (xmlUCSIsBoxDrawing) xmlUCSIsBoxDrawing __attribute((alias("xmlUCSIsBoxDrawing__internal_alias")));
#else
#ifndef xmlUCSIsBoxDrawing
extern __typeof (xmlUCSIsBoxDrawing) xmlUCSIsBoxDrawing__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsBoxDrawing xmlUCSIsBoxDrawing__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsBraillePatterns
extern __typeof (xmlUCSIsBraillePatterns) xmlUCSIsBraillePatterns __attribute((alias("xmlUCSIsBraillePatterns__internal_alias")));
#else
#ifndef xmlUCSIsBraillePatterns
extern __typeof (xmlUCSIsBraillePatterns) xmlUCSIsBraillePatterns__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsBraillePatterns xmlUCSIsBraillePatterns__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsBuhid
extern __typeof (xmlUCSIsBuhid) xmlUCSIsBuhid __attribute((alias("xmlUCSIsBuhid__internal_alias")));
#else
#ifndef xmlUCSIsBuhid
extern __typeof (xmlUCSIsBuhid) xmlUCSIsBuhid__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsBuhid xmlUCSIsBuhid__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsByzantineMusicalSymbols
extern __typeof (xmlUCSIsByzantineMusicalSymbols) xmlUCSIsByzantineMusicalSymbols __attribute((alias("xmlUCSIsByzantineMusicalSymbols__internal_alias")));
#else
#ifndef xmlUCSIsByzantineMusicalSymbols
extern __typeof (xmlUCSIsByzantineMusicalSymbols) xmlUCSIsByzantineMusicalSymbols__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsByzantineMusicalSymbols xmlUCSIsByzantineMusicalSymbols__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsCJKCompatibility
extern __typeof (xmlUCSIsCJKCompatibility) xmlUCSIsCJKCompatibility __attribute((alias("xmlUCSIsCJKCompatibility__internal_alias")));
#else
#ifndef xmlUCSIsCJKCompatibility
extern __typeof (xmlUCSIsCJKCompatibility) xmlUCSIsCJKCompatibility__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsCJKCompatibility xmlUCSIsCJKCompatibility__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsCJKCompatibilityForms
extern __typeof (xmlUCSIsCJKCompatibilityForms) xmlUCSIsCJKCompatibilityForms __attribute((alias("xmlUCSIsCJKCompatibilityForms__internal_alias")));
#else
#ifndef xmlUCSIsCJKCompatibilityForms
extern __typeof (xmlUCSIsCJKCompatibilityForms) xmlUCSIsCJKCompatibilityForms__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsCJKCompatibilityForms xmlUCSIsCJKCompatibilityForms__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsCJKCompatibilityIdeographs
extern __typeof (xmlUCSIsCJKCompatibilityIdeographs) xmlUCSIsCJKCompatibilityIdeographs __attribute((alias("xmlUCSIsCJKCompatibilityIdeographs__internal_alias")));
#else
#ifndef xmlUCSIsCJKCompatibilityIdeographs
extern __typeof (xmlUCSIsCJKCompatibilityIdeographs) xmlUCSIsCJKCompatibilityIdeographs__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsCJKCompatibilityIdeographs xmlUCSIsCJKCompatibilityIdeographs__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsCJKCompatibilityIdeographsSupplement
extern __typeof (xmlUCSIsCJKCompatibilityIdeographsSupplement) xmlUCSIsCJKCompatibilityIdeographsSupplement __attribute((alias("xmlUCSIsCJKCompatibilityIdeographsSupplement__internal_alias")));
#else
#ifndef xmlUCSIsCJKCompatibilityIdeographsSupplement
extern __typeof (xmlUCSIsCJKCompatibilityIdeographsSupplement) xmlUCSIsCJKCompatibilityIdeographsSupplement__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsCJKCompatibilityIdeographsSupplement xmlUCSIsCJKCompatibilityIdeographsSupplement__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsCJKRadicalsSupplement
extern __typeof (xmlUCSIsCJKRadicalsSupplement) xmlUCSIsCJKRadicalsSupplement __attribute((alias("xmlUCSIsCJKRadicalsSupplement__internal_alias")));
#else
#ifndef xmlUCSIsCJKRadicalsSupplement
extern __typeof (xmlUCSIsCJKRadicalsSupplement) xmlUCSIsCJKRadicalsSupplement__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsCJKRadicalsSupplement xmlUCSIsCJKRadicalsSupplement__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsCJKSymbolsandPunctuation
extern __typeof (xmlUCSIsCJKSymbolsandPunctuation) xmlUCSIsCJKSymbolsandPunctuation __attribute((alias("xmlUCSIsCJKSymbolsandPunctuation__internal_alias")));
#else
#ifndef xmlUCSIsCJKSymbolsandPunctuation
extern __typeof (xmlUCSIsCJKSymbolsandPunctuation) xmlUCSIsCJKSymbolsandPunctuation__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsCJKSymbolsandPunctuation xmlUCSIsCJKSymbolsandPunctuation__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsCJKUnifiedIdeographs
extern __typeof (xmlUCSIsCJKUnifiedIdeographs) xmlUCSIsCJKUnifiedIdeographs __attribute((alias("xmlUCSIsCJKUnifiedIdeographs__internal_alias")));
#else
#ifndef xmlUCSIsCJKUnifiedIdeographs
extern __typeof (xmlUCSIsCJKUnifiedIdeographs) xmlUCSIsCJKUnifiedIdeographs__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsCJKUnifiedIdeographs xmlUCSIsCJKUnifiedIdeographs__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsCJKUnifiedIdeographsExtensionA
extern __typeof (xmlUCSIsCJKUnifiedIdeographsExtensionA) xmlUCSIsCJKUnifiedIdeographsExtensionA __attribute((alias("xmlUCSIsCJKUnifiedIdeographsExtensionA__internal_alias")));
#else
#ifndef xmlUCSIsCJKUnifiedIdeographsExtensionA
extern __typeof (xmlUCSIsCJKUnifiedIdeographsExtensionA) xmlUCSIsCJKUnifiedIdeographsExtensionA__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsCJKUnifiedIdeographsExtensionA xmlUCSIsCJKUnifiedIdeographsExtensionA__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsCJKUnifiedIdeographsExtensionB
extern __typeof (xmlUCSIsCJKUnifiedIdeographsExtensionB) xmlUCSIsCJKUnifiedIdeographsExtensionB __attribute((alias("xmlUCSIsCJKUnifiedIdeographsExtensionB__internal_alias")));
#else
#ifndef xmlUCSIsCJKUnifiedIdeographsExtensionB
extern __typeof (xmlUCSIsCJKUnifiedIdeographsExtensionB) xmlUCSIsCJKUnifiedIdeographsExtensionB__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsCJKUnifiedIdeographsExtensionB xmlUCSIsCJKUnifiedIdeographsExtensionB__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsCat
extern __typeof (xmlUCSIsCat) xmlUCSIsCat __attribute((alias("xmlUCSIsCat__internal_alias")));
#else
#ifndef xmlUCSIsCat
extern __typeof (xmlUCSIsCat) xmlUCSIsCat__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsCat xmlUCSIsCat__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsCatC
extern __typeof (xmlUCSIsCatC) xmlUCSIsCatC __attribute((alias("xmlUCSIsCatC__internal_alias")));
#else
#ifndef xmlUCSIsCatC
extern __typeof (xmlUCSIsCatC) xmlUCSIsCatC__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsCatC xmlUCSIsCatC__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsCatCc
extern __typeof (xmlUCSIsCatCc) xmlUCSIsCatCc __attribute((alias("xmlUCSIsCatCc__internal_alias")));
#else
#ifndef xmlUCSIsCatCc
extern __typeof (xmlUCSIsCatCc) xmlUCSIsCatCc__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsCatCc xmlUCSIsCatCc__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsCatCf
extern __typeof (xmlUCSIsCatCf) xmlUCSIsCatCf __attribute((alias("xmlUCSIsCatCf__internal_alias")));
#else
#ifndef xmlUCSIsCatCf
extern __typeof (xmlUCSIsCatCf) xmlUCSIsCatCf__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsCatCf xmlUCSIsCatCf__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsCatCo
extern __typeof (xmlUCSIsCatCo) xmlUCSIsCatCo __attribute((alias("xmlUCSIsCatCo__internal_alias")));
#else
#ifndef xmlUCSIsCatCo
extern __typeof (xmlUCSIsCatCo) xmlUCSIsCatCo__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsCatCo xmlUCSIsCatCo__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsCatCs
extern __typeof (xmlUCSIsCatCs) xmlUCSIsCatCs __attribute((alias("xmlUCSIsCatCs__internal_alias")));
#else
#ifndef xmlUCSIsCatCs
extern __typeof (xmlUCSIsCatCs) xmlUCSIsCatCs__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsCatCs xmlUCSIsCatCs__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsCatL
extern __typeof (xmlUCSIsCatL) xmlUCSIsCatL __attribute((alias("xmlUCSIsCatL__internal_alias")));
#else
#ifndef xmlUCSIsCatL
extern __typeof (xmlUCSIsCatL) xmlUCSIsCatL__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsCatL xmlUCSIsCatL__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsCatLl
extern __typeof (xmlUCSIsCatLl) xmlUCSIsCatLl __attribute((alias("xmlUCSIsCatLl__internal_alias")));
#else
#ifndef xmlUCSIsCatLl
extern __typeof (xmlUCSIsCatLl) xmlUCSIsCatLl__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsCatLl xmlUCSIsCatLl__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsCatLm
extern __typeof (xmlUCSIsCatLm) xmlUCSIsCatLm __attribute((alias("xmlUCSIsCatLm__internal_alias")));
#else
#ifndef xmlUCSIsCatLm
extern __typeof (xmlUCSIsCatLm) xmlUCSIsCatLm__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsCatLm xmlUCSIsCatLm__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsCatLo
extern __typeof (xmlUCSIsCatLo) xmlUCSIsCatLo __attribute((alias("xmlUCSIsCatLo__internal_alias")));
#else
#ifndef xmlUCSIsCatLo
extern __typeof (xmlUCSIsCatLo) xmlUCSIsCatLo__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsCatLo xmlUCSIsCatLo__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsCatLt
extern __typeof (xmlUCSIsCatLt) xmlUCSIsCatLt __attribute((alias("xmlUCSIsCatLt__internal_alias")));
#else
#ifndef xmlUCSIsCatLt
extern __typeof (xmlUCSIsCatLt) xmlUCSIsCatLt__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsCatLt xmlUCSIsCatLt__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsCatLu
extern __typeof (xmlUCSIsCatLu) xmlUCSIsCatLu __attribute((alias("xmlUCSIsCatLu__internal_alias")));
#else
#ifndef xmlUCSIsCatLu
extern __typeof (xmlUCSIsCatLu) xmlUCSIsCatLu__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsCatLu xmlUCSIsCatLu__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsCatM
extern __typeof (xmlUCSIsCatM) xmlUCSIsCatM __attribute((alias("xmlUCSIsCatM__internal_alias")));
#else
#ifndef xmlUCSIsCatM
extern __typeof (xmlUCSIsCatM) xmlUCSIsCatM__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsCatM xmlUCSIsCatM__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsCatMc
extern __typeof (xmlUCSIsCatMc) xmlUCSIsCatMc __attribute((alias("xmlUCSIsCatMc__internal_alias")));
#else
#ifndef xmlUCSIsCatMc
extern __typeof (xmlUCSIsCatMc) xmlUCSIsCatMc__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsCatMc xmlUCSIsCatMc__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsCatMe
extern __typeof (xmlUCSIsCatMe) xmlUCSIsCatMe __attribute((alias("xmlUCSIsCatMe__internal_alias")));
#else
#ifndef xmlUCSIsCatMe
extern __typeof (xmlUCSIsCatMe) xmlUCSIsCatMe__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsCatMe xmlUCSIsCatMe__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsCatMn
extern __typeof (xmlUCSIsCatMn) xmlUCSIsCatMn __attribute((alias("xmlUCSIsCatMn__internal_alias")));
#else
#ifndef xmlUCSIsCatMn
extern __typeof (xmlUCSIsCatMn) xmlUCSIsCatMn__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsCatMn xmlUCSIsCatMn__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsCatN
extern __typeof (xmlUCSIsCatN) xmlUCSIsCatN __attribute((alias("xmlUCSIsCatN__internal_alias")));
#else
#ifndef xmlUCSIsCatN
extern __typeof (xmlUCSIsCatN) xmlUCSIsCatN__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsCatN xmlUCSIsCatN__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsCatNd
extern __typeof (xmlUCSIsCatNd) xmlUCSIsCatNd __attribute((alias("xmlUCSIsCatNd__internal_alias")));
#else
#ifndef xmlUCSIsCatNd
extern __typeof (xmlUCSIsCatNd) xmlUCSIsCatNd__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsCatNd xmlUCSIsCatNd__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsCatNl
extern __typeof (xmlUCSIsCatNl) xmlUCSIsCatNl __attribute((alias("xmlUCSIsCatNl__internal_alias")));
#else
#ifndef xmlUCSIsCatNl
extern __typeof (xmlUCSIsCatNl) xmlUCSIsCatNl__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsCatNl xmlUCSIsCatNl__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsCatNo
extern __typeof (xmlUCSIsCatNo) xmlUCSIsCatNo __attribute((alias("xmlUCSIsCatNo__internal_alias")));
#else
#ifndef xmlUCSIsCatNo
extern __typeof (xmlUCSIsCatNo) xmlUCSIsCatNo__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsCatNo xmlUCSIsCatNo__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsCatP
extern __typeof (xmlUCSIsCatP) xmlUCSIsCatP __attribute((alias("xmlUCSIsCatP__internal_alias")));
#else
#ifndef xmlUCSIsCatP
extern __typeof (xmlUCSIsCatP) xmlUCSIsCatP__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsCatP xmlUCSIsCatP__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsCatPc
extern __typeof (xmlUCSIsCatPc) xmlUCSIsCatPc __attribute((alias("xmlUCSIsCatPc__internal_alias")));
#else
#ifndef xmlUCSIsCatPc
extern __typeof (xmlUCSIsCatPc) xmlUCSIsCatPc__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsCatPc xmlUCSIsCatPc__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsCatPd
extern __typeof (xmlUCSIsCatPd) xmlUCSIsCatPd __attribute((alias("xmlUCSIsCatPd__internal_alias")));
#else
#ifndef xmlUCSIsCatPd
extern __typeof (xmlUCSIsCatPd) xmlUCSIsCatPd__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsCatPd xmlUCSIsCatPd__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsCatPe
extern __typeof (xmlUCSIsCatPe) xmlUCSIsCatPe __attribute((alias("xmlUCSIsCatPe__internal_alias")));
#else
#ifndef xmlUCSIsCatPe
extern __typeof (xmlUCSIsCatPe) xmlUCSIsCatPe__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsCatPe xmlUCSIsCatPe__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsCatPf
extern __typeof (xmlUCSIsCatPf) xmlUCSIsCatPf __attribute((alias("xmlUCSIsCatPf__internal_alias")));
#else
#ifndef xmlUCSIsCatPf
extern __typeof (xmlUCSIsCatPf) xmlUCSIsCatPf__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsCatPf xmlUCSIsCatPf__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsCatPi
extern __typeof (xmlUCSIsCatPi) xmlUCSIsCatPi __attribute((alias("xmlUCSIsCatPi__internal_alias")));
#else
#ifndef xmlUCSIsCatPi
extern __typeof (xmlUCSIsCatPi) xmlUCSIsCatPi__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsCatPi xmlUCSIsCatPi__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsCatPo
extern __typeof (xmlUCSIsCatPo) xmlUCSIsCatPo __attribute((alias("xmlUCSIsCatPo__internal_alias")));
#else
#ifndef xmlUCSIsCatPo
extern __typeof (xmlUCSIsCatPo) xmlUCSIsCatPo__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsCatPo xmlUCSIsCatPo__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsCatPs
extern __typeof (xmlUCSIsCatPs) xmlUCSIsCatPs __attribute((alias("xmlUCSIsCatPs__internal_alias")));
#else
#ifndef xmlUCSIsCatPs
extern __typeof (xmlUCSIsCatPs) xmlUCSIsCatPs__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsCatPs xmlUCSIsCatPs__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsCatS
extern __typeof (xmlUCSIsCatS) xmlUCSIsCatS __attribute((alias("xmlUCSIsCatS__internal_alias")));
#else
#ifndef xmlUCSIsCatS
extern __typeof (xmlUCSIsCatS) xmlUCSIsCatS__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsCatS xmlUCSIsCatS__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsCatSc
extern __typeof (xmlUCSIsCatSc) xmlUCSIsCatSc __attribute((alias("xmlUCSIsCatSc__internal_alias")));
#else
#ifndef xmlUCSIsCatSc
extern __typeof (xmlUCSIsCatSc) xmlUCSIsCatSc__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsCatSc xmlUCSIsCatSc__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsCatSk
extern __typeof (xmlUCSIsCatSk) xmlUCSIsCatSk __attribute((alias("xmlUCSIsCatSk__internal_alias")));
#else
#ifndef xmlUCSIsCatSk
extern __typeof (xmlUCSIsCatSk) xmlUCSIsCatSk__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsCatSk xmlUCSIsCatSk__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsCatSm
extern __typeof (xmlUCSIsCatSm) xmlUCSIsCatSm __attribute((alias("xmlUCSIsCatSm__internal_alias")));
#else
#ifndef xmlUCSIsCatSm
extern __typeof (xmlUCSIsCatSm) xmlUCSIsCatSm__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsCatSm xmlUCSIsCatSm__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsCatSo
extern __typeof (xmlUCSIsCatSo) xmlUCSIsCatSo __attribute((alias("xmlUCSIsCatSo__internal_alias")));
#else
#ifndef xmlUCSIsCatSo
extern __typeof (xmlUCSIsCatSo) xmlUCSIsCatSo__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsCatSo xmlUCSIsCatSo__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsCatZ
extern __typeof (xmlUCSIsCatZ) xmlUCSIsCatZ __attribute((alias("xmlUCSIsCatZ__internal_alias")));
#else
#ifndef xmlUCSIsCatZ
extern __typeof (xmlUCSIsCatZ) xmlUCSIsCatZ__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsCatZ xmlUCSIsCatZ__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsCatZl
extern __typeof (xmlUCSIsCatZl) xmlUCSIsCatZl __attribute((alias("xmlUCSIsCatZl__internal_alias")));
#else
#ifndef xmlUCSIsCatZl
extern __typeof (xmlUCSIsCatZl) xmlUCSIsCatZl__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsCatZl xmlUCSIsCatZl__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsCatZp
extern __typeof (xmlUCSIsCatZp) xmlUCSIsCatZp __attribute((alias("xmlUCSIsCatZp__internal_alias")));
#else
#ifndef xmlUCSIsCatZp
extern __typeof (xmlUCSIsCatZp) xmlUCSIsCatZp__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsCatZp xmlUCSIsCatZp__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsCatZs
extern __typeof (xmlUCSIsCatZs) xmlUCSIsCatZs __attribute((alias("xmlUCSIsCatZs__internal_alias")));
#else
#ifndef xmlUCSIsCatZs
extern __typeof (xmlUCSIsCatZs) xmlUCSIsCatZs__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsCatZs xmlUCSIsCatZs__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsCherokee
extern __typeof (xmlUCSIsCherokee) xmlUCSIsCherokee __attribute((alias("xmlUCSIsCherokee__internal_alias")));
#else
#ifndef xmlUCSIsCherokee
extern __typeof (xmlUCSIsCherokee) xmlUCSIsCherokee__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsCherokee xmlUCSIsCherokee__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsCombiningDiacriticalMarks
extern __typeof (xmlUCSIsCombiningDiacriticalMarks) xmlUCSIsCombiningDiacriticalMarks __attribute((alias("xmlUCSIsCombiningDiacriticalMarks__internal_alias")));
#else
#ifndef xmlUCSIsCombiningDiacriticalMarks
extern __typeof (xmlUCSIsCombiningDiacriticalMarks) xmlUCSIsCombiningDiacriticalMarks__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsCombiningDiacriticalMarks xmlUCSIsCombiningDiacriticalMarks__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsCombiningDiacriticalMarksforSymbols
extern __typeof (xmlUCSIsCombiningDiacriticalMarksforSymbols) xmlUCSIsCombiningDiacriticalMarksforSymbols __attribute((alias("xmlUCSIsCombiningDiacriticalMarksforSymbols__internal_alias")));
#else
#ifndef xmlUCSIsCombiningDiacriticalMarksforSymbols
extern __typeof (xmlUCSIsCombiningDiacriticalMarksforSymbols) xmlUCSIsCombiningDiacriticalMarksforSymbols__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsCombiningDiacriticalMarksforSymbols xmlUCSIsCombiningDiacriticalMarksforSymbols__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsCombiningHalfMarks
extern __typeof (xmlUCSIsCombiningHalfMarks) xmlUCSIsCombiningHalfMarks __attribute((alias("xmlUCSIsCombiningHalfMarks__internal_alias")));
#else
#ifndef xmlUCSIsCombiningHalfMarks
extern __typeof (xmlUCSIsCombiningHalfMarks) xmlUCSIsCombiningHalfMarks__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsCombiningHalfMarks xmlUCSIsCombiningHalfMarks__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsCombiningMarksforSymbols
extern __typeof (xmlUCSIsCombiningMarksforSymbols) xmlUCSIsCombiningMarksforSymbols __attribute((alias("xmlUCSIsCombiningMarksforSymbols__internal_alias")));
#else
#ifndef xmlUCSIsCombiningMarksforSymbols
extern __typeof (xmlUCSIsCombiningMarksforSymbols) xmlUCSIsCombiningMarksforSymbols__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsCombiningMarksforSymbols xmlUCSIsCombiningMarksforSymbols__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsControlPictures
extern __typeof (xmlUCSIsControlPictures) xmlUCSIsControlPictures __attribute((alias("xmlUCSIsControlPictures__internal_alias")));
#else
#ifndef xmlUCSIsControlPictures
extern __typeof (xmlUCSIsControlPictures) xmlUCSIsControlPictures__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsControlPictures xmlUCSIsControlPictures__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsCurrencySymbols
extern __typeof (xmlUCSIsCurrencySymbols) xmlUCSIsCurrencySymbols __attribute((alias("xmlUCSIsCurrencySymbols__internal_alias")));
#else
#ifndef xmlUCSIsCurrencySymbols
extern __typeof (xmlUCSIsCurrencySymbols) xmlUCSIsCurrencySymbols__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsCurrencySymbols xmlUCSIsCurrencySymbols__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsCypriotSyllabary
extern __typeof (xmlUCSIsCypriotSyllabary) xmlUCSIsCypriotSyllabary __attribute((alias("xmlUCSIsCypriotSyllabary__internal_alias")));
#else
#ifndef xmlUCSIsCypriotSyllabary
extern __typeof (xmlUCSIsCypriotSyllabary) xmlUCSIsCypriotSyllabary__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsCypriotSyllabary xmlUCSIsCypriotSyllabary__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsCyrillic
extern __typeof (xmlUCSIsCyrillic) xmlUCSIsCyrillic __attribute((alias("xmlUCSIsCyrillic__internal_alias")));
#else
#ifndef xmlUCSIsCyrillic
extern __typeof (xmlUCSIsCyrillic) xmlUCSIsCyrillic__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsCyrillic xmlUCSIsCyrillic__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsCyrillicSupplement
extern __typeof (xmlUCSIsCyrillicSupplement) xmlUCSIsCyrillicSupplement __attribute((alias("xmlUCSIsCyrillicSupplement__internal_alias")));
#else
#ifndef xmlUCSIsCyrillicSupplement
extern __typeof (xmlUCSIsCyrillicSupplement) xmlUCSIsCyrillicSupplement__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsCyrillicSupplement xmlUCSIsCyrillicSupplement__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsDeseret
extern __typeof (xmlUCSIsDeseret) xmlUCSIsDeseret __attribute((alias("xmlUCSIsDeseret__internal_alias")));
#else
#ifndef xmlUCSIsDeseret
extern __typeof (xmlUCSIsDeseret) xmlUCSIsDeseret__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsDeseret xmlUCSIsDeseret__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsDevanagari
extern __typeof (xmlUCSIsDevanagari) xmlUCSIsDevanagari __attribute((alias("xmlUCSIsDevanagari__internal_alias")));
#else
#ifndef xmlUCSIsDevanagari
extern __typeof (xmlUCSIsDevanagari) xmlUCSIsDevanagari__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsDevanagari xmlUCSIsDevanagari__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsDingbats
extern __typeof (xmlUCSIsDingbats) xmlUCSIsDingbats __attribute((alias("xmlUCSIsDingbats__internal_alias")));
#else
#ifndef xmlUCSIsDingbats
extern __typeof (xmlUCSIsDingbats) xmlUCSIsDingbats__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsDingbats xmlUCSIsDingbats__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsEnclosedAlphanumerics
extern __typeof (xmlUCSIsEnclosedAlphanumerics) xmlUCSIsEnclosedAlphanumerics __attribute((alias("xmlUCSIsEnclosedAlphanumerics__internal_alias")));
#else
#ifndef xmlUCSIsEnclosedAlphanumerics
extern __typeof (xmlUCSIsEnclosedAlphanumerics) xmlUCSIsEnclosedAlphanumerics__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsEnclosedAlphanumerics xmlUCSIsEnclosedAlphanumerics__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsEnclosedCJKLettersandMonths
extern __typeof (xmlUCSIsEnclosedCJKLettersandMonths) xmlUCSIsEnclosedCJKLettersandMonths __attribute((alias("xmlUCSIsEnclosedCJKLettersandMonths__internal_alias")));
#else
#ifndef xmlUCSIsEnclosedCJKLettersandMonths
extern __typeof (xmlUCSIsEnclosedCJKLettersandMonths) xmlUCSIsEnclosedCJKLettersandMonths__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsEnclosedCJKLettersandMonths xmlUCSIsEnclosedCJKLettersandMonths__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsEthiopic
extern __typeof (xmlUCSIsEthiopic) xmlUCSIsEthiopic __attribute((alias("xmlUCSIsEthiopic__internal_alias")));
#else
#ifndef xmlUCSIsEthiopic
extern __typeof (xmlUCSIsEthiopic) xmlUCSIsEthiopic__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsEthiopic xmlUCSIsEthiopic__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsGeneralPunctuation
extern __typeof (xmlUCSIsGeneralPunctuation) xmlUCSIsGeneralPunctuation __attribute((alias("xmlUCSIsGeneralPunctuation__internal_alias")));
#else
#ifndef xmlUCSIsGeneralPunctuation
extern __typeof (xmlUCSIsGeneralPunctuation) xmlUCSIsGeneralPunctuation__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsGeneralPunctuation xmlUCSIsGeneralPunctuation__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsGeometricShapes
extern __typeof (xmlUCSIsGeometricShapes) xmlUCSIsGeometricShapes __attribute((alias("xmlUCSIsGeometricShapes__internal_alias")));
#else
#ifndef xmlUCSIsGeometricShapes
extern __typeof (xmlUCSIsGeometricShapes) xmlUCSIsGeometricShapes__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsGeometricShapes xmlUCSIsGeometricShapes__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsGeorgian
extern __typeof (xmlUCSIsGeorgian) xmlUCSIsGeorgian __attribute((alias("xmlUCSIsGeorgian__internal_alias")));
#else
#ifndef xmlUCSIsGeorgian
extern __typeof (xmlUCSIsGeorgian) xmlUCSIsGeorgian__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsGeorgian xmlUCSIsGeorgian__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsGothic
extern __typeof (xmlUCSIsGothic) xmlUCSIsGothic __attribute((alias("xmlUCSIsGothic__internal_alias")));
#else
#ifndef xmlUCSIsGothic
extern __typeof (xmlUCSIsGothic) xmlUCSIsGothic__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsGothic xmlUCSIsGothic__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsGreek
extern __typeof (xmlUCSIsGreek) xmlUCSIsGreek __attribute((alias("xmlUCSIsGreek__internal_alias")));
#else
#ifndef xmlUCSIsGreek
extern __typeof (xmlUCSIsGreek) xmlUCSIsGreek__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsGreek xmlUCSIsGreek__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsGreekExtended
extern __typeof (xmlUCSIsGreekExtended) xmlUCSIsGreekExtended __attribute((alias("xmlUCSIsGreekExtended__internal_alias")));
#else
#ifndef xmlUCSIsGreekExtended
extern __typeof (xmlUCSIsGreekExtended) xmlUCSIsGreekExtended__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsGreekExtended xmlUCSIsGreekExtended__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsGreekandCoptic
extern __typeof (xmlUCSIsGreekandCoptic) xmlUCSIsGreekandCoptic __attribute((alias("xmlUCSIsGreekandCoptic__internal_alias")));
#else
#ifndef xmlUCSIsGreekandCoptic
extern __typeof (xmlUCSIsGreekandCoptic) xmlUCSIsGreekandCoptic__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsGreekandCoptic xmlUCSIsGreekandCoptic__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsGujarati
extern __typeof (xmlUCSIsGujarati) xmlUCSIsGujarati __attribute((alias("xmlUCSIsGujarati__internal_alias")));
#else
#ifndef xmlUCSIsGujarati
extern __typeof (xmlUCSIsGujarati) xmlUCSIsGujarati__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsGujarati xmlUCSIsGujarati__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsGurmukhi
extern __typeof (xmlUCSIsGurmukhi) xmlUCSIsGurmukhi __attribute((alias("xmlUCSIsGurmukhi__internal_alias")));
#else
#ifndef xmlUCSIsGurmukhi
extern __typeof (xmlUCSIsGurmukhi) xmlUCSIsGurmukhi__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsGurmukhi xmlUCSIsGurmukhi__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsHalfwidthandFullwidthForms
extern __typeof (xmlUCSIsHalfwidthandFullwidthForms) xmlUCSIsHalfwidthandFullwidthForms __attribute((alias("xmlUCSIsHalfwidthandFullwidthForms__internal_alias")));
#else
#ifndef xmlUCSIsHalfwidthandFullwidthForms
extern __typeof (xmlUCSIsHalfwidthandFullwidthForms) xmlUCSIsHalfwidthandFullwidthForms__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsHalfwidthandFullwidthForms xmlUCSIsHalfwidthandFullwidthForms__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsHangulCompatibilityJamo
extern __typeof (xmlUCSIsHangulCompatibilityJamo) xmlUCSIsHangulCompatibilityJamo __attribute((alias("xmlUCSIsHangulCompatibilityJamo__internal_alias")));
#else
#ifndef xmlUCSIsHangulCompatibilityJamo
extern __typeof (xmlUCSIsHangulCompatibilityJamo) xmlUCSIsHangulCompatibilityJamo__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsHangulCompatibilityJamo xmlUCSIsHangulCompatibilityJamo__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsHangulJamo
extern __typeof (xmlUCSIsHangulJamo) xmlUCSIsHangulJamo __attribute((alias("xmlUCSIsHangulJamo__internal_alias")));
#else
#ifndef xmlUCSIsHangulJamo
extern __typeof (xmlUCSIsHangulJamo) xmlUCSIsHangulJamo__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsHangulJamo xmlUCSIsHangulJamo__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsHangulSyllables
extern __typeof (xmlUCSIsHangulSyllables) xmlUCSIsHangulSyllables __attribute((alias("xmlUCSIsHangulSyllables__internal_alias")));
#else
#ifndef xmlUCSIsHangulSyllables
extern __typeof (xmlUCSIsHangulSyllables) xmlUCSIsHangulSyllables__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsHangulSyllables xmlUCSIsHangulSyllables__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsHanunoo
extern __typeof (xmlUCSIsHanunoo) xmlUCSIsHanunoo __attribute((alias("xmlUCSIsHanunoo__internal_alias")));
#else
#ifndef xmlUCSIsHanunoo
extern __typeof (xmlUCSIsHanunoo) xmlUCSIsHanunoo__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsHanunoo xmlUCSIsHanunoo__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsHebrew
extern __typeof (xmlUCSIsHebrew) xmlUCSIsHebrew __attribute((alias("xmlUCSIsHebrew__internal_alias")));
#else
#ifndef xmlUCSIsHebrew
extern __typeof (xmlUCSIsHebrew) xmlUCSIsHebrew__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsHebrew xmlUCSIsHebrew__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsHighPrivateUseSurrogates
extern __typeof (xmlUCSIsHighPrivateUseSurrogates) xmlUCSIsHighPrivateUseSurrogates __attribute((alias("xmlUCSIsHighPrivateUseSurrogates__internal_alias")));
#else
#ifndef xmlUCSIsHighPrivateUseSurrogates
extern __typeof (xmlUCSIsHighPrivateUseSurrogates) xmlUCSIsHighPrivateUseSurrogates__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsHighPrivateUseSurrogates xmlUCSIsHighPrivateUseSurrogates__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsHighSurrogates
extern __typeof (xmlUCSIsHighSurrogates) xmlUCSIsHighSurrogates __attribute((alias("xmlUCSIsHighSurrogates__internal_alias")));
#else
#ifndef xmlUCSIsHighSurrogates
extern __typeof (xmlUCSIsHighSurrogates) xmlUCSIsHighSurrogates__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsHighSurrogates xmlUCSIsHighSurrogates__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsHiragana
extern __typeof (xmlUCSIsHiragana) xmlUCSIsHiragana __attribute((alias("xmlUCSIsHiragana__internal_alias")));
#else
#ifndef xmlUCSIsHiragana
extern __typeof (xmlUCSIsHiragana) xmlUCSIsHiragana__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsHiragana xmlUCSIsHiragana__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsIPAExtensions
extern __typeof (xmlUCSIsIPAExtensions) xmlUCSIsIPAExtensions __attribute((alias("xmlUCSIsIPAExtensions__internal_alias")));
#else
#ifndef xmlUCSIsIPAExtensions
extern __typeof (xmlUCSIsIPAExtensions) xmlUCSIsIPAExtensions__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsIPAExtensions xmlUCSIsIPAExtensions__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsIdeographicDescriptionCharacters
extern __typeof (xmlUCSIsIdeographicDescriptionCharacters) xmlUCSIsIdeographicDescriptionCharacters __attribute((alias("xmlUCSIsIdeographicDescriptionCharacters__internal_alias")));
#else
#ifndef xmlUCSIsIdeographicDescriptionCharacters
extern __typeof (xmlUCSIsIdeographicDescriptionCharacters) xmlUCSIsIdeographicDescriptionCharacters__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsIdeographicDescriptionCharacters xmlUCSIsIdeographicDescriptionCharacters__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsKanbun
extern __typeof (xmlUCSIsKanbun) xmlUCSIsKanbun __attribute((alias("xmlUCSIsKanbun__internal_alias")));
#else
#ifndef xmlUCSIsKanbun
extern __typeof (xmlUCSIsKanbun) xmlUCSIsKanbun__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsKanbun xmlUCSIsKanbun__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsKangxiRadicals
extern __typeof (xmlUCSIsKangxiRadicals) xmlUCSIsKangxiRadicals __attribute((alias("xmlUCSIsKangxiRadicals__internal_alias")));
#else
#ifndef xmlUCSIsKangxiRadicals
extern __typeof (xmlUCSIsKangxiRadicals) xmlUCSIsKangxiRadicals__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsKangxiRadicals xmlUCSIsKangxiRadicals__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsKannada
extern __typeof (xmlUCSIsKannada) xmlUCSIsKannada __attribute((alias("xmlUCSIsKannada__internal_alias")));
#else
#ifndef xmlUCSIsKannada
extern __typeof (xmlUCSIsKannada) xmlUCSIsKannada__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsKannada xmlUCSIsKannada__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsKatakana
extern __typeof (xmlUCSIsKatakana) xmlUCSIsKatakana __attribute((alias("xmlUCSIsKatakana__internal_alias")));
#else
#ifndef xmlUCSIsKatakana
extern __typeof (xmlUCSIsKatakana) xmlUCSIsKatakana__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsKatakana xmlUCSIsKatakana__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsKatakanaPhoneticExtensions
extern __typeof (xmlUCSIsKatakanaPhoneticExtensions) xmlUCSIsKatakanaPhoneticExtensions __attribute((alias("xmlUCSIsKatakanaPhoneticExtensions__internal_alias")));
#else
#ifndef xmlUCSIsKatakanaPhoneticExtensions
extern __typeof (xmlUCSIsKatakanaPhoneticExtensions) xmlUCSIsKatakanaPhoneticExtensions__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsKatakanaPhoneticExtensions xmlUCSIsKatakanaPhoneticExtensions__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsKhmer
extern __typeof (xmlUCSIsKhmer) xmlUCSIsKhmer __attribute((alias("xmlUCSIsKhmer__internal_alias")));
#else
#ifndef xmlUCSIsKhmer
extern __typeof (xmlUCSIsKhmer) xmlUCSIsKhmer__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsKhmer xmlUCSIsKhmer__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsKhmerSymbols
extern __typeof (xmlUCSIsKhmerSymbols) xmlUCSIsKhmerSymbols __attribute((alias("xmlUCSIsKhmerSymbols__internal_alias")));
#else
#ifndef xmlUCSIsKhmerSymbols
extern __typeof (xmlUCSIsKhmerSymbols) xmlUCSIsKhmerSymbols__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsKhmerSymbols xmlUCSIsKhmerSymbols__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsLao
extern __typeof (xmlUCSIsLao) xmlUCSIsLao __attribute((alias("xmlUCSIsLao__internal_alias")));
#else
#ifndef xmlUCSIsLao
extern __typeof (xmlUCSIsLao) xmlUCSIsLao__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsLao xmlUCSIsLao__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsLatin1Supplement
extern __typeof (xmlUCSIsLatin1Supplement) xmlUCSIsLatin1Supplement __attribute((alias("xmlUCSIsLatin1Supplement__internal_alias")));
#else
#ifndef xmlUCSIsLatin1Supplement
extern __typeof (xmlUCSIsLatin1Supplement) xmlUCSIsLatin1Supplement__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsLatin1Supplement xmlUCSIsLatin1Supplement__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsLatinExtendedA
extern __typeof (xmlUCSIsLatinExtendedA) xmlUCSIsLatinExtendedA __attribute((alias("xmlUCSIsLatinExtendedA__internal_alias")));
#else
#ifndef xmlUCSIsLatinExtendedA
extern __typeof (xmlUCSIsLatinExtendedA) xmlUCSIsLatinExtendedA__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsLatinExtendedA xmlUCSIsLatinExtendedA__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsLatinExtendedAdditional
extern __typeof (xmlUCSIsLatinExtendedAdditional) xmlUCSIsLatinExtendedAdditional __attribute((alias("xmlUCSIsLatinExtendedAdditional__internal_alias")));
#else
#ifndef xmlUCSIsLatinExtendedAdditional
extern __typeof (xmlUCSIsLatinExtendedAdditional) xmlUCSIsLatinExtendedAdditional__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsLatinExtendedAdditional xmlUCSIsLatinExtendedAdditional__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsLatinExtendedB
extern __typeof (xmlUCSIsLatinExtendedB) xmlUCSIsLatinExtendedB __attribute((alias("xmlUCSIsLatinExtendedB__internal_alias")));
#else
#ifndef xmlUCSIsLatinExtendedB
extern __typeof (xmlUCSIsLatinExtendedB) xmlUCSIsLatinExtendedB__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsLatinExtendedB xmlUCSIsLatinExtendedB__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsLetterlikeSymbols
extern __typeof (xmlUCSIsLetterlikeSymbols) xmlUCSIsLetterlikeSymbols __attribute((alias("xmlUCSIsLetterlikeSymbols__internal_alias")));
#else
#ifndef xmlUCSIsLetterlikeSymbols
extern __typeof (xmlUCSIsLetterlikeSymbols) xmlUCSIsLetterlikeSymbols__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsLetterlikeSymbols xmlUCSIsLetterlikeSymbols__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsLimbu
extern __typeof (xmlUCSIsLimbu) xmlUCSIsLimbu __attribute((alias("xmlUCSIsLimbu__internal_alias")));
#else
#ifndef xmlUCSIsLimbu
extern __typeof (xmlUCSIsLimbu) xmlUCSIsLimbu__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsLimbu xmlUCSIsLimbu__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsLinearBIdeograms
extern __typeof (xmlUCSIsLinearBIdeograms) xmlUCSIsLinearBIdeograms __attribute((alias("xmlUCSIsLinearBIdeograms__internal_alias")));
#else
#ifndef xmlUCSIsLinearBIdeograms
extern __typeof (xmlUCSIsLinearBIdeograms) xmlUCSIsLinearBIdeograms__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsLinearBIdeograms xmlUCSIsLinearBIdeograms__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsLinearBSyllabary
extern __typeof (xmlUCSIsLinearBSyllabary) xmlUCSIsLinearBSyllabary __attribute((alias("xmlUCSIsLinearBSyllabary__internal_alias")));
#else
#ifndef xmlUCSIsLinearBSyllabary
extern __typeof (xmlUCSIsLinearBSyllabary) xmlUCSIsLinearBSyllabary__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsLinearBSyllabary xmlUCSIsLinearBSyllabary__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsLowSurrogates
extern __typeof (xmlUCSIsLowSurrogates) xmlUCSIsLowSurrogates __attribute((alias("xmlUCSIsLowSurrogates__internal_alias")));
#else
#ifndef xmlUCSIsLowSurrogates
extern __typeof (xmlUCSIsLowSurrogates) xmlUCSIsLowSurrogates__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsLowSurrogates xmlUCSIsLowSurrogates__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsMalayalam
extern __typeof (xmlUCSIsMalayalam) xmlUCSIsMalayalam __attribute((alias("xmlUCSIsMalayalam__internal_alias")));
#else
#ifndef xmlUCSIsMalayalam
extern __typeof (xmlUCSIsMalayalam) xmlUCSIsMalayalam__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsMalayalam xmlUCSIsMalayalam__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsMathematicalAlphanumericSymbols
extern __typeof (xmlUCSIsMathematicalAlphanumericSymbols) xmlUCSIsMathematicalAlphanumericSymbols __attribute((alias("xmlUCSIsMathematicalAlphanumericSymbols__internal_alias")));
#else
#ifndef xmlUCSIsMathematicalAlphanumericSymbols
extern __typeof (xmlUCSIsMathematicalAlphanumericSymbols) xmlUCSIsMathematicalAlphanumericSymbols__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsMathematicalAlphanumericSymbols xmlUCSIsMathematicalAlphanumericSymbols__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsMathematicalOperators
extern __typeof (xmlUCSIsMathematicalOperators) xmlUCSIsMathematicalOperators __attribute((alias("xmlUCSIsMathematicalOperators__internal_alias")));
#else
#ifndef xmlUCSIsMathematicalOperators
extern __typeof (xmlUCSIsMathematicalOperators) xmlUCSIsMathematicalOperators__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsMathematicalOperators xmlUCSIsMathematicalOperators__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsMiscellaneousMathematicalSymbolsA
extern __typeof (xmlUCSIsMiscellaneousMathematicalSymbolsA) xmlUCSIsMiscellaneousMathematicalSymbolsA __attribute((alias("xmlUCSIsMiscellaneousMathematicalSymbolsA__internal_alias")));
#else
#ifndef xmlUCSIsMiscellaneousMathematicalSymbolsA
extern __typeof (xmlUCSIsMiscellaneousMathematicalSymbolsA) xmlUCSIsMiscellaneousMathematicalSymbolsA__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsMiscellaneousMathematicalSymbolsA xmlUCSIsMiscellaneousMathematicalSymbolsA__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsMiscellaneousMathematicalSymbolsB
extern __typeof (xmlUCSIsMiscellaneousMathematicalSymbolsB) xmlUCSIsMiscellaneousMathematicalSymbolsB __attribute((alias("xmlUCSIsMiscellaneousMathematicalSymbolsB__internal_alias")));
#else
#ifndef xmlUCSIsMiscellaneousMathematicalSymbolsB
extern __typeof (xmlUCSIsMiscellaneousMathematicalSymbolsB) xmlUCSIsMiscellaneousMathematicalSymbolsB__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsMiscellaneousMathematicalSymbolsB xmlUCSIsMiscellaneousMathematicalSymbolsB__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsMiscellaneousSymbols
extern __typeof (xmlUCSIsMiscellaneousSymbols) xmlUCSIsMiscellaneousSymbols __attribute((alias("xmlUCSIsMiscellaneousSymbols__internal_alias")));
#else
#ifndef xmlUCSIsMiscellaneousSymbols
extern __typeof (xmlUCSIsMiscellaneousSymbols) xmlUCSIsMiscellaneousSymbols__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsMiscellaneousSymbols xmlUCSIsMiscellaneousSymbols__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsMiscellaneousSymbolsandArrows
extern __typeof (xmlUCSIsMiscellaneousSymbolsandArrows) xmlUCSIsMiscellaneousSymbolsandArrows __attribute((alias("xmlUCSIsMiscellaneousSymbolsandArrows__internal_alias")));
#else
#ifndef xmlUCSIsMiscellaneousSymbolsandArrows
extern __typeof (xmlUCSIsMiscellaneousSymbolsandArrows) xmlUCSIsMiscellaneousSymbolsandArrows__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsMiscellaneousSymbolsandArrows xmlUCSIsMiscellaneousSymbolsandArrows__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsMiscellaneousTechnical
extern __typeof (xmlUCSIsMiscellaneousTechnical) xmlUCSIsMiscellaneousTechnical __attribute((alias("xmlUCSIsMiscellaneousTechnical__internal_alias")));
#else
#ifndef xmlUCSIsMiscellaneousTechnical
extern __typeof (xmlUCSIsMiscellaneousTechnical) xmlUCSIsMiscellaneousTechnical__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsMiscellaneousTechnical xmlUCSIsMiscellaneousTechnical__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsMongolian
extern __typeof (xmlUCSIsMongolian) xmlUCSIsMongolian __attribute((alias("xmlUCSIsMongolian__internal_alias")));
#else
#ifndef xmlUCSIsMongolian
extern __typeof (xmlUCSIsMongolian) xmlUCSIsMongolian__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsMongolian xmlUCSIsMongolian__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsMusicalSymbols
extern __typeof (xmlUCSIsMusicalSymbols) xmlUCSIsMusicalSymbols __attribute((alias("xmlUCSIsMusicalSymbols__internal_alias")));
#else
#ifndef xmlUCSIsMusicalSymbols
extern __typeof (xmlUCSIsMusicalSymbols) xmlUCSIsMusicalSymbols__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsMusicalSymbols xmlUCSIsMusicalSymbols__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsMyanmar
extern __typeof (xmlUCSIsMyanmar) xmlUCSIsMyanmar __attribute((alias("xmlUCSIsMyanmar__internal_alias")));
#else
#ifndef xmlUCSIsMyanmar
extern __typeof (xmlUCSIsMyanmar) xmlUCSIsMyanmar__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsMyanmar xmlUCSIsMyanmar__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsNumberForms
extern __typeof (xmlUCSIsNumberForms) xmlUCSIsNumberForms __attribute((alias("xmlUCSIsNumberForms__internal_alias")));
#else
#ifndef xmlUCSIsNumberForms
extern __typeof (xmlUCSIsNumberForms) xmlUCSIsNumberForms__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsNumberForms xmlUCSIsNumberForms__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsOgham
extern __typeof (xmlUCSIsOgham) xmlUCSIsOgham __attribute((alias("xmlUCSIsOgham__internal_alias")));
#else
#ifndef xmlUCSIsOgham
extern __typeof (xmlUCSIsOgham) xmlUCSIsOgham__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsOgham xmlUCSIsOgham__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsOldItalic
extern __typeof (xmlUCSIsOldItalic) xmlUCSIsOldItalic __attribute((alias("xmlUCSIsOldItalic__internal_alias")));
#else
#ifndef xmlUCSIsOldItalic
extern __typeof (xmlUCSIsOldItalic) xmlUCSIsOldItalic__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsOldItalic xmlUCSIsOldItalic__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsOpticalCharacterRecognition
extern __typeof (xmlUCSIsOpticalCharacterRecognition) xmlUCSIsOpticalCharacterRecognition __attribute((alias("xmlUCSIsOpticalCharacterRecognition__internal_alias")));
#else
#ifndef xmlUCSIsOpticalCharacterRecognition
extern __typeof (xmlUCSIsOpticalCharacterRecognition) xmlUCSIsOpticalCharacterRecognition__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsOpticalCharacterRecognition xmlUCSIsOpticalCharacterRecognition__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsOriya
extern __typeof (xmlUCSIsOriya) xmlUCSIsOriya __attribute((alias("xmlUCSIsOriya__internal_alias")));
#else
#ifndef xmlUCSIsOriya
extern __typeof (xmlUCSIsOriya) xmlUCSIsOriya__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsOriya xmlUCSIsOriya__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsOsmanya
extern __typeof (xmlUCSIsOsmanya) xmlUCSIsOsmanya __attribute((alias("xmlUCSIsOsmanya__internal_alias")));
#else
#ifndef xmlUCSIsOsmanya
extern __typeof (xmlUCSIsOsmanya) xmlUCSIsOsmanya__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsOsmanya xmlUCSIsOsmanya__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsPhoneticExtensions
extern __typeof (xmlUCSIsPhoneticExtensions) xmlUCSIsPhoneticExtensions __attribute((alias("xmlUCSIsPhoneticExtensions__internal_alias")));
#else
#ifndef xmlUCSIsPhoneticExtensions
extern __typeof (xmlUCSIsPhoneticExtensions) xmlUCSIsPhoneticExtensions__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsPhoneticExtensions xmlUCSIsPhoneticExtensions__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsPrivateUse
extern __typeof (xmlUCSIsPrivateUse) xmlUCSIsPrivateUse __attribute((alias("xmlUCSIsPrivateUse__internal_alias")));
#else
#ifndef xmlUCSIsPrivateUse
extern __typeof (xmlUCSIsPrivateUse) xmlUCSIsPrivateUse__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsPrivateUse xmlUCSIsPrivateUse__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsPrivateUseArea
extern __typeof (xmlUCSIsPrivateUseArea) xmlUCSIsPrivateUseArea __attribute((alias("xmlUCSIsPrivateUseArea__internal_alias")));
#else
#ifndef xmlUCSIsPrivateUseArea
extern __typeof (xmlUCSIsPrivateUseArea) xmlUCSIsPrivateUseArea__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsPrivateUseArea xmlUCSIsPrivateUseArea__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsRunic
extern __typeof (xmlUCSIsRunic) xmlUCSIsRunic __attribute((alias("xmlUCSIsRunic__internal_alias")));
#else
#ifndef xmlUCSIsRunic
extern __typeof (xmlUCSIsRunic) xmlUCSIsRunic__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsRunic xmlUCSIsRunic__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsShavian
extern __typeof (xmlUCSIsShavian) xmlUCSIsShavian __attribute((alias("xmlUCSIsShavian__internal_alias")));
#else
#ifndef xmlUCSIsShavian
extern __typeof (xmlUCSIsShavian) xmlUCSIsShavian__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsShavian xmlUCSIsShavian__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsSinhala
extern __typeof (xmlUCSIsSinhala) xmlUCSIsSinhala __attribute((alias("xmlUCSIsSinhala__internal_alias")));
#else
#ifndef xmlUCSIsSinhala
extern __typeof (xmlUCSIsSinhala) xmlUCSIsSinhala__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsSinhala xmlUCSIsSinhala__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsSmallFormVariants
extern __typeof (xmlUCSIsSmallFormVariants) xmlUCSIsSmallFormVariants __attribute((alias("xmlUCSIsSmallFormVariants__internal_alias")));
#else
#ifndef xmlUCSIsSmallFormVariants
extern __typeof (xmlUCSIsSmallFormVariants) xmlUCSIsSmallFormVariants__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsSmallFormVariants xmlUCSIsSmallFormVariants__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsSpacingModifierLetters
extern __typeof (xmlUCSIsSpacingModifierLetters) xmlUCSIsSpacingModifierLetters __attribute((alias("xmlUCSIsSpacingModifierLetters__internal_alias")));
#else
#ifndef xmlUCSIsSpacingModifierLetters
extern __typeof (xmlUCSIsSpacingModifierLetters) xmlUCSIsSpacingModifierLetters__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsSpacingModifierLetters xmlUCSIsSpacingModifierLetters__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsSpecials
extern __typeof (xmlUCSIsSpecials) xmlUCSIsSpecials __attribute((alias("xmlUCSIsSpecials__internal_alias")));
#else
#ifndef xmlUCSIsSpecials
extern __typeof (xmlUCSIsSpecials) xmlUCSIsSpecials__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsSpecials xmlUCSIsSpecials__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsSuperscriptsandSubscripts
extern __typeof (xmlUCSIsSuperscriptsandSubscripts) xmlUCSIsSuperscriptsandSubscripts __attribute((alias("xmlUCSIsSuperscriptsandSubscripts__internal_alias")));
#else
#ifndef xmlUCSIsSuperscriptsandSubscripts
extern __typeof (xmlUCSIsSuperscriptsandSubscripts) xmlUCSIsSuperscriptsandSubscripts__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsSuperscriptsandSubscripts xmlUCSIsSuperscriptsandSubscripts__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsSupplementalArrowsA
extern __typeof (xmlUCSIsSupplementalArrowsA) xmlUCSIsSupplementalArrowsA __attribute((alias("xmlUCSIsSupplementalArrowsA__internal_alias")));
#else
#ifndef xmlUCSIsSupplementalArrowsA
extern __typeof (xmlUCSIsSupplementalArrowsA) xmlUCSIsSupplementalArrowsA__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsSupplementalArrowsA xmlUCSIsSupplementalArrowsA__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsSupplementalArrowsB
extern __typeof (xmlUCSIsSupplementalArrowsB) xmlUCSIsSupplementalArrowsB __attribute((alias("xmlUCSIsSupplementalArrowsB__internal_alias")));
#else
#ifndef xmlUCSIsSupplementalArrowsB
extern __typeof (xmlUCSIsSupplementalArrowsB) xmlUCSIsSupplementalArrowsB__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsSupplementalArrowsB xmlUCSIsSupplementalArrowsB__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsSupplementalMathematicalOperators
extern __typeof (xmlUCSIsSupplementalMathematicalOperators) xmlUCSIsSupplementalMathematicalOperators __attribute((alias("xmlUCSIsSupplementalMathematicalOperators__internal_alias")));
#else
#ifndef xmlUCSIsSupplementalMathematicalOperators
extern __typeof (xmlUCSIsSupplementalMathematicalOperators) xmlUCSIsSupplementalMathematicalOperators__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsSupplementalMathematicalOperators xmlUCSIsSupplementalMathematicalOperators__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsSupplementaryPrivateUseAreaA
extern __typeof (xmlUCSIsSupplementaryPrivateUseAreaA) xmlUCSIsSupplementaryPrivateUseAreaA __attribute((alias("xmlUCSIsSupplementaryPrivateUseAreaA__internal_alias")));
#else
#ifndef xmlUCSIsSupplementaryPrivateUseAreaA
extern __typeof (xmlUCSIsSupplementaryPrivateUseAreaA) xmlUCSIsSupplementaryPrivateUseAreaA__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsSupplementaryPrivateUseAreaA xmlUCSIsSupplementaryPrivateUseAreaA__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsSupplementaryPrivateUseAreaB
extern __typeof (xmlUCSIsSupplementaryPrivateUseAreaB) xmlUCSIsSupplementaryPrivateUseAreaB __attribute((alias("xmlUCSIsSupplementaryPrivateUseAreaB__internal_alias")));
#else
#ifndef xmlUCSIsSupplementaryPrivateUseAreaB
extern __typeof (xmlUCSIsSupplementaryPrivateUseAreaB) xmlUCSIsSupplementaryPrivateUseAreaB__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsSupplementaryPrivateUseAreaB xmlUCSIsSupplementaryPrivateUseAreaB__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsSyriac
extern __typeof (xmlUCSIsSyriac) xmlUCSIsSyriac __attribute((alias("xmlUCSIsSyriac__internal_alias")));
#else
#ifndef xmlUCSIsSyriac
extern __typeof (xmlUCSIsSyriac) xmlUCSIsSyriac__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsSyriac xmlUCSIsSyriac__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsTagalog
extern __typeof (xmlUCSIsTagalog) xmlUCSIsTagalog __attribute((alias("xmlUCSIsTagalog__internal_alias")));
#else
#ifndef xmlUCSIsTagalog
extern __typeof (xmlUCSIsTagalog) xmlUCSIsTagalog__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsTagalog xmlUCSIsTagalog__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsTagbanwa
extern __typeof (xmlUCSIsTagbanwa) xmlUCSIsTagbanwa __attribute((alias("xmlUCSIsTagbanwa__internal_alias")));
#else
#ifndef xmlUCSIsTagbanwa
extern __typeof (xmlUCSIsTagbanwa) xmlUCSIsTagbanwa__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsTagbanwa xmlUCSIsTagbanwa__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsTags
extern __typeof (xmlUCSIsTags) xmlUCSIsTags __attribute((alias("xmlUCSIsTags__internal_alias")));
#else
#ifndef xmlUCSIsTags
extern __typeof (xmlUCSIsTags) xmlUCSIsTags__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsTags xmlUCSIsTags__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsTaiLe
extern __typeof (xmlUCSIsTaiLe) xmlUCSIsTaiLe __attribute((alias("xmlUCSIsTaiLe__internal_alias")));
#else
#ifndef xmlUCSIsTaiLe
extern __typeof (xmlUCSIsTaiLe) xmlUCSIsTaiLe__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsTaiLe xmlUCSIsTaiLe__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsTaiXuanJingSymbols
extern __typeof (xmlUCSIsTaiXuanJingSymbols) xmlUCSIsTaiXuanJingSymbols __attribute((alias("xmlUCSIsTaiXuanJingSymbols__internal_alias")));
#else
#ifndef xmlUCSIsTaiXuanJingSymbols
extern __typeof (xmlUCSIsTaiXuanJingSymbols) xmlUCSIsTaiXuanJingSymbols__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsTaiXuanJingSymbols xmlUCSIsTaiXuanJingSymbols__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsTamil
extern __typeof (xmlUCSIsTamil) xmlUCSIsTamil __attribute((alias("xmlUCSIsTamil__internal_alias")));
#else
#ifndef xmlUCSIsTamil
extern __typeof (xmlUCSIsTamil) xmlUCSIsTamil__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsTamil xmlUCSIsTamil__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsTelugu
extern __typeof (xmlUCSIsTelugu) xmlUCSIsTelugu __attribute((alias("xmlUCSIsTelugu__internal_alias")));
#else
#ifndef xmlUCSIsTelugu
extern __typeof (xmlUCSIsTelugu) xmlUCSIsTelugu__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsTelugu xmlUCSIsTelugu__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsThaana
extern __typeof (xmlUCSIsThaana) xmlUCSIsThaana __attribute((alias("xmlUCSIsThaana__internal_alias")));
#else
#ifndef xmlUCSIsThaana
extern __typeof (xmlUCSIsThaana) xmlUCSIsThaana__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsThaana xmlUCSIsThaana__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsThai
extern __typeof (xmlUCSIsThai) xmlUCSIsThai __attribute((alias("xmlUCSIsThai__internal_alias")));
#else
#ifndef xmlUCSIsThai
extern __typeof (xmlUCSIsThai) xmlUCSIsThai__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsThai xmlUCSIsThai__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsTibetan
extern __typeof (xmlUCSIsTibetan) xmlUCSIsTibetan __attribute((alias("xmlUCSIsTibetan__internal_alias")));
#else
#ifndef xmlUCSIsTibetan
extern __typeof (xmlUCSIsTibetan) xmlUCSIsTibetan__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsTibetan xmlUCSIsTibetan__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsUgaritic
extern __typeof (xmlUCSIsUgaritic) xmlUCSIsUgaritic __attribute((alias("xmlUCSIsUgaritic__internal_alias")));
#else
#ifndef xmlUCSIsUgaritic
extern __typeof (xmlUCSIsUgaritic) xmlUCSIsUgaritic__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsUgaritic xmlUCSIsUgaritic__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsUnifiedCanadianAboriginalSyllabics
extern __typeof (xmlUCSIsUnifiedCanadianAboriginalSyllabics) xmlUCSIsUnifiedCanadianAboriginalSyllabics __attribute((alias("xmlUCSIsUnifiedCanadianAboriginalSyllabics__internal_alias")));
#else
#ifndef xmlUCSIsUnifiedCanadianAboriginalSyllabics
extern __typeof (xmlUCSIsUnifiedCanadianAboriginalSyllabics) xmlUCSIsUnifiedCanadianAboriginalSyllabics__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsUnifiedCanadianAboriginalSyllabics xmlUCSIsUnifiedCanadianAboriginalSyllabics__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsVariationSelectors
extern __typeof (xmlUCSIsVariationSelectors) xmlUCSIsVariationSelectors __attribute((alias("xmlUCSIsVariationSelectors__internal_alias")));
#else
#ifndef xmlUCSIsVariationSelectors
extern __typeof (xmlUCSIsVariationSelectors) xmlUCSIsVariationSelectors__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsVariationSelectors xmlUCSIsVariationSelectors__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsVariationSelectorsSupplement
extern __typeof (xmlUCSIsVariationSelectorsSupplement) xmlUCSIsVariationSelectorsSupplement __attribute((alias("xmlUCSIsVariationSelectorsSupplement__internal_alias")));
#else
#ifndef xmlUCSIsVariationSelectorsSupplement
extern __typeof (xmlUCSIsVariationSelectorsSupplement) xmlUCSIsVariationSelectorsSupplement__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsVariationSelectorsSupplement xmlUCSIsVariationSelectorsSupplement__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsYiRadicals
extern __typeof (xmlUCSIsYiRadicals) xmlUCSIsYiRadicals __attribute((alias("xmlUCSIsYiRadicals__internal_alias")));
#else
#ifndef xmlUCSIsYiRadicals
extern __typeof (xmlUCSIsYiRadicals) xmlUCSIsYiRadicals__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsYiRadicals xmlUCSIsYiRadicals__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsYiSyllables
extern __typeof (xmlUCSIsYiSyllables) xmlUCSIsYiSyllables __attribute((alias("xmlUCSIsYiSyllables__internal_alias")));
#else
#ifndef xmlUCSIsYiSyllables
extern __typeof (xmlUCSIsYiSyllables) xmlUCSIsYiSyllables__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsYiSyllables xmlUCSIsYiSyllables__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_UNICODE_ENABLED)
#ifdef bottom_xmlunicode
#undef xmlUCSIsYijingHexagramSymbols
extern __typeof (xmlUCSIsYijingHexagramSymbols) xmlUCSIsYijingHexagramSymbols __attribute((alias("xmlUCSIsYijingHexagramSymbols__internal_alias")));
#else
#ifndef xmlUCSIsYijingHexagramSymbols
extern __typeof (xmlUCSIsYijingHexagramSymbols) xmlUCSIsYijingHexagramSymbols__internal_alias __attribute((visibility("hidden")));
#define xmlUCSIsYijingHexagramSymbols xmlUCSIsYijingHexagramSymbols__internal_alias
#endif
#endif
#endif

#ifdef bottom_uri
#undef xmlURIEscape
extern __typeof (xmlURIEscape) xmlURIEscape __attribute((alias("xmlURIEscape__internal_alias")));
#else
#ifndef xmlURIEscape
extern __typeof (xmlURIEscape) xmlURIEscape__internal_alias __attribute((visibility("hidden")));
#define xmlURIEscape xmlURIEscape__internal_alias
#endif
#endif

#ifdef bottom_uri
#undef xmlURIEscapeStr
extern __typeof (xmlURIEscapeStr) xmlURIEscapeStr __attribute((alias("xmlURIEscapeStr__internal_alias")));
#else
#ifndef xmlURIEscapeStr
extern __typeof (xmlURIEscapeStr) xmlURIEscapeStr__internal_alias __attribute((visibility("hidden")));
#define xmlURIEscapeStr xmlURIEscapeStr__internal_alias
#endif
#endif

#ifdef bottom_uri
#undef xmlURIUnescapeString
extern __typeof (xmlURIUnescapeString) xmlURIUnescapeString __attribute((alias("xmlURIUnescapeString__internal_alias")));
#else
#ifndef xmlURIUnescapeString
extern __typeof (xmlURIUnescapeString) xmlURIUnescapeString__internal_alias __attribute((visibility("hidden")));
#define xmlURIUnescapeString xmlURIUnescapeString__internal_alias
#endif
#endif

#ifdef bottom_xmlstring
#undef xmlUTF8Charcmp
extern __typeof (xmlUTF8Charcmp) xmlUTF8Charcmp __attribute((alias("xmlUTF8Charcmp__internal_alias")));
#else
#ifndef xmlUTF8Charcmp
extern __typeof (xmlUTF8Charcmp) xmlUTF8Charcmp__internal_alias __attribute((visibility("hidden")));
#define xmlUTF8Charcmp xmlUTF8Charcmp__internal_alias
#endif
#endif

#ifdef bottom_xmlstring
#undef xmlUTF8Size
extern __typeof (xmlUTF8Size) xmlUTF8Size __attribute((alias("xmlUTF8Size__internal_alias")));
#else
#ifndef xmlUTF8Size
extern __typeof (xmlUTF8Size) xmlUTF8Size__internal_alias __attribute((visibility("hidden")));
#define xmlUTF8Size xmlUTF8Size__internal_alias
#endif
#endif

#ifdef bottom_xmlstring
#undef xmlUTF8Strlen
extern __typeof (xmlUTF8Strlen) xmlUTF8Strlen __attribute((alias("xmlUTF8Strlen__internal_alias")));
#else
#ifndef xmlUTF8Strlen
extern __typeof (xmlUTF8Strlen) xmlUTF8Strlen__internal_alias __attribute((visibility("hidden")));
#define xmlUTF8Strlen xmlUTF8Strlen__internal_alias
#endif
#endif

#ifdef bottom_xmlstring
#undef xmlUTF8Strloc
extern __typeof (xmlUTF8Strloc) xmlUTF8Strloc __attribute((alias("xmlUTF8Strloc__internal_alias")));
#else
#ifndef xmlUTF8Strloc
extern __typeof (xmlUTF8Strloc) xmlUTF8Strloc__internal_alias __attribute((visibility("hidden")));
#define xmlUTF8Strloc xmlUTF8Strloc__internal_alias
#endif
#endif

#ifdef bottom_xmlstring
#undef xmlUTF8Strndup
extern __typeof (xmlUTF8Strndup) xmlUTF8Strndup __attribute((alias("xmlUTF8Strndup__internal_alias")));
#else
#ifndef xmlUTF8Strndup
extern __typeof (xmlUTF8Strndup) xmlUTF8Strndup__internal_alias __attribute((visibility("hidden")));
#define xmlUTF8Strndup xmlUTF8Strndup__internal_alias
#endif
#endif

#ifdef bottom_xmlstring
#undef xmlUTF8Strpos
extern __typeof (xmlUTF8Strpos) xmlUTF8Strpos __attribute((alias("xmlUTF8Strpos__internal_alias")));
#else
#ifndef xmlUTF8Strpos
extern __typeof (xmlUTF8Strpos) xmlUTF8Strpos__internal_alias __attribute((visibility("hidden")));
#define xmlUTF8Strpos xmlUTF8Strpos__internal_alias
#endif
#endif

#ifdef bottom_xmlstring
#undef xmlUTF8Strsize
extern __typeof (xmlUTF8Strsize) xmlUTF8Strsize __attribute((alias("xmlUTF8Strsize__internal_alias")));
#else
#ifndef xmlUTF8Strsize
extern __typeof (xmlUTF8Strsize) xmlUTF8Strsize__internal_alias __attribute((visibility("hidden")));
#define xmlUTF8Strsize xmlUTF8Strsize__internal_alias
#endif
#endif

#ifdef bottom_xmlstring
#undef xmlUTF8Strsub
extern __typeof (xmlUTF8Strsub) xmlUTF8Strsub __attribute((alias("xmlUTF8Strsub__internal_alias")));
#else
#ifndef xmlUTF8Strsub
extern __typeof (xmlUTF8Strsub) xmlUTF8Strsub__internal_alias __attribute((visibility("hidden")));
#define xmlUTF8Strsub xmlUTF8Strsub__internal_alias
#endif
#endif

#ifdef bottom_tree
#undef xmlUnlinkNode
extern __typeof (xmlUnlinkNode) xmlUnlinkNode __attribute((alias("xmlUnlinkNode__internal_alias")));
#else
#ifndef xmlUnlinkNode
extern __typeof (xmlUnlinkNode) xmlUnlinkNode__internal_alias __attribute((visibility("hidden")));
#define xmlUnlinkNode xmlUnlinkNode__internal_alias
#endif
#endif

#ifdef bottom_threads
#undef xmlUnlockLibrary
extern __typeof (xmlUnlockLibrary) xmlUnlockLibrary __attribute((alias("xmlUnlockLibrary__internal_alias")));
#else
#ifndef xmlUnlockLibrary
extern __typeof (xmlUnlockLibrary) xmlUnlockLibrary__internal_alias __attribute((visibility("hidden")));
#define xmlUnlockLibrary xmlUnlockLibrary__internal_alias
#endif
#endif

#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)
#ifdef bottom_tree
#undef xmlUnsetNsProp
extern __typeof (xmlUnsetNsProp) xmlUnsetNsProp __attribute((alias("xmlUnsetNsProp__internal_alias")));
#else
#ifndef xmlUnsetNsProp
extern __typeof (xmlUnsetNsProp) xmlUnsetNsProp__internal_alias __attribute((visibility("hidden")));
#define xmlUnsetNsProp xmlUnsetNsProp__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)
#ifdef bottom_tree
#undef xmlUnsetProp
extern __typeof (xmlUnsetProp) xmlUnsetProp __attribute((alias("xmlUnsetProp__internal_alias")));
#else
#ifndef xmlUnsetProp
extern __typeof (xmlUnsetProp) xmlUnsetProp__internal_alias __attribute((visibility("hidden")));
#define xmlUnsetProp xmlUnsetProp__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_VALID_ENABLED) && defined(LIBXML_REGEXP_ENABLED)
#ifdef bottom_valid
#undef xmlValidBuildContentModel
extern __typeof (xmlValidBuildContentModel) xmlValidBuildContentModel __attribute((alias("xmlValidBuildContentModel__internal_alias")));
#else
#ifndef xmlValidBuildContentModel
extern __typeof (xmlValidBuildContentModel) xmlValidBuildContentModel__internal_alias __attribute((visibility("hidden")));
#define xmlValidBuildContentModel xmlValidBuildContentModel__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_VALID_ENABLED)
#ifdef bottom_valid
#undef xmlValidCtxtNormalizeAttributeValue
extern __typeof (xmlValidCtxtNormalizeAttributeValue) xmlValidCtxtNormalizeAttributeValue __attribute((alias("xmlValidCtxtNormalizeAttributeValue__internal_alias")));
#else
#ifndef xmlValidCtxtNormalizeAttributeValue
extern __typeof (xmlValidCtxtNormalizeAttributeValue) xmlValidCtxtNormalizeAttributeValue__internal_alias __attribute((visibility("hidden")));
#define xmlValidCtxtNormalizeAttributeValue xmlValidCtxtNormalizeAttributeValue__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_VALID_ENABLED)
#ifdef bottom_valid
#undef xmlValidGetPotentialChildren
extern __typeof (xmlValidGetPotentialChildren) xmlValidGetPotentialChildren __attribute((alias("xmlValidGetPotentialChildren__internal_alias")));
#else
#ifndef xmlValidGetPotentialChildren
extern __typeof (xmlValidGetPotentialChildren) xmlValidGetPotentialChildren__internal_alias __attribute((visibility("hidden")));
#define xmlValidGetPotentialChildren xmlValidGetPotentialChildren__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_VALID_ENABLED)
#ifdef bottom_valid
#undef xmlValidGetValidElements
extern __typeof (xmlValidGetValidElements) xmlValidGetValidElements __attribute((alias("xmlValidGetValidElements__internal_alias")));
#else
#ifndef xmlValidGetValidElements
extern __typeof (xmlValidGetValidElements) xmlValidGetValidElements__internal_alias __attribute((visibility("hidden")));
#define xmlValidGetValidElements xmlValidGetValidElements__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_VALID_ENABLED)
#ifdef bottom_valid
#undef xmlValidNormalizeAttributeValue
extern __typeof (xmlValidNormalizeAttributeValue) xmlValidNormalizeAttributeValue __attribute((alias("xmlValidNormalizeAttributeValue__internal_alias")));
#else
#ifndef xmlValidNormalizeAttributeValue
extern __typeof (xmlValidNormalizeAttributeValue) xmlValidNormalizeAttributeValue__internal_alias __attribute((visibility("hidden")));
#define xmlValidNormalizeAttributeValue xmlValidNormalizeAttributeValue__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_VALID_ENABLED)
#ifdef bottom_valid
#undef xmlValidateAttributeDecl
extern __typeof (xmlValidateAttributeDecl) xmlValidateAttributeDecl __attribute((alias("xmlValidateAttributeDecl__internal_alias")));
#else
#ifndef xmlValidateAttributeDecl
extern __typeof (xmlValidateAttributeDecl) xmlValidateAttributeDecl__internal_alias __attribute((visibility("hidden")));
#define xmlValidateAttributeDecl xmlValidateAttributeDecl__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_VALID_ENABLED)
#ifdef bottom_valid
#undef xmlValidateAttributeValue
extern __typeof (xmlValidateAttributeValue) xmlValidateAttributeValue __attribute((alias("xmlValidateAttributeValue__internal_alias")));
#else
#ifndef xmlValidateAttributeValue
extern __typeof (xmlValidateAttributeValue) xmlValidateAttributeValue__internal_alias __attribute((visibility("hidden")));
#define xmlValidateAttributeValue xmlValidateAttributeValue__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_VALID_ENABLED)
#ifdef bottom_valid
#undef xmlValidateDocument
extern __typeof (xmlValidateDocument) xmlValidateDocument __attribute((alias("xmlValidateDocument__internal_alias")));
#else
#ifndef xmlValidateDocument
extern __typeof (xmlValidateDocument) xmlValidateDocument__internal_alias __attribute((visibility("hidden")));
#define xmlValidateDocument xmlValidateDocument__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_VALID_ENABLED)
#ifdef bottom_valid
#undef xmlValidateDocumentFinal
extern __typeof (xmlValidateDocumentFinal) xmlValidateDocumentFinal __attribute((alias("xmlValidateDocumentFinal__internal_alias")));
#else
#ifndef xmlValidateDocumentFinal
extern __typeof (xmlValidateDocumentFinal) xmlValidateDocumentFinal__internal_alias __attribute((visibility("hidden")));
#define xmlValidateDocumentFinal xmlValidateDocumentFinal__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_VALID_ENABLED)
#ifdef bottom_valid
#undef xmlValidateDtd
extern __typeof (xmlValidateDtd) xmlValidateDtd __attribute((alias("xmlValidateDtd__internal_alias")));
#else
#ifndef xmlValidateDtd
extern __typeof (xmlValidateDtd) xmlValidateDtd__internal_alias __attribute((visibility("hidden")));
#define xmlValidateDtd xmlValidateDtd__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_VALID_ENABLED)
#ifdef bottom_valid
#undef xmlValidateDtdFinal
extern __typeof (xmlValidateDtdFinal) xmlValidateDtdFinal __attribute((alias("xmlValidateDtdFinal__internal_alias")));
#else
#ifndef xmlValidateDtdFinal
extern __typeof (xmlValidateDtdFinal) xmlValidateDtdFinal__internal_alias __attribute((visibility("hidden")));
#define xmlValidateDtdFinal xmlValidateDtdFinal__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_VALID_ENABLED)
#ifdef bottom_valid
#undef xmlValidateElement
extern __typeof (xmlValidateElement) xmlValidateElement __attribute((alias("xmlValidateElement__internal_alias")));
#else
#ifndef xmlValidateElement
extern __typeof (xmlValidateElement) xmlValidateElement__internal_alias __attribute((visibility("hidden")));
#define xmlValidateElement xmlValidateElement__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_VALID_ENABLED)
#ifdef bottom_valid
#undef xmlValidateElementDecl
extern __typeof (xmlValidateElementDecl) xmlValidateElementDecl __attribute((alias("xmlValidateElementDecl__internal_alias")));
#else
#ifndef xmlValidateElementDecl
extern __typeof (xmlValidateElementDecl) xmlValidateElementDecl__internal_alias __attribute((visibility("hidden")));
#define xmlValidateElementDecl xmlValidateElementDecl__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XPATH_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) || defined(LIBXML_DEBUG_ENABLED) || defined (LIBXML_HTML_ENABLED)
#ifdef bottom_tree
#undef xmlValidateNCName
extern __typeof (xmlValidateNCName) xmlValidateNCName __attribute((alias("xmlValidateNCName__internal_alias")));
#else
#ifndef xmlValidateNCName
extern __typeof (xmlValidateNCName) xmlValidateNCName__internal_alias __attribute((visibility("hidden")));
#define xmlValidateNCName xmlValidateNCName__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)
#ifdef bottom_tree
#undef xmlValidateNMToken
extern __typeof (xmlValidateNMToken) xmlValidateNMToken __attribute((alias("xmlValidateNMToken__internal_alias")));
#else
#ifndef xmlValidateNMToken
extern __typeof (xmlValidateNMToken) xmlValidateNMToken__internal_alias __attribute((visibility("hidden")));
#define xmlValidateNMToken xmlValidateNMToken__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)
#ifdef bottom_tree
#undef xmlValidateName
extern __typeof (xmlValidateName) xmlValidateName __attribute((alias("xmlValidateName__internal_alias")));
#else
#ifndef xmlValidateName
extern __typeof (xmlValidateName) xmlValidateName__internal_alias __attribute((visibility("hidden")));
#define xmlValidateName xmlValidateName__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_VALID_ENABLED)
#ifdef bottom_valid
#undef xmlValidateNameValue
extern __typeof (xmlValidateNameValue) xmlValidateNameValue __attribute((alias("xmlValidateNameValue__internal_alias")));
#else
#ifndef xmlValidateNameValue
extern __typeof (xmlValidateNameValue) xmlValidateNameValue__internal_alias __attribute((visibility("hidden")));
#define xmlValidateNameValue xmlValidateNameValue__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_VALID_ENABLED)
#ifdef bottom_valid
#undef xmlValidateNamesValue
extern __typeof (xmlValidateNamesValue) xmlValidateNamesValue __attribute((alias("xmlValidateNamesValue__internal_alias")));
#else
#ifndef xmlValidateNamesValue
extern __typeof (xmlValidateNamesValue) xmlValidateNamesValue__internal_alias __attribute((visibility("hidden")));
#define xmlValidateNamesValue xmlValidateNamesValue__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_VALID_ENABLED)
#ifdef bottom_valid
#undef xmlValidateNmtokenValue
extern __typeof (xmlValidateNmtokenValue) xmlValidateNmtokenValue __attribute((alias("xmlValidateNmtokenValue__internal_alias")));
#else
#ifndef xmlValidateNmtokenValue
extern __typeof (xmlValidateNmtokenValue) xmlValidateNmtokenValue__internal_alias __attribute((visibility("hidden")));
#define xmlValidateNmtokenValue xmlValidateNmtokenValue__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_VALID_ENABLED)
#ifdef bottom_valid
#undef xmlValidateNmtokensValue
extern __typeof (xmlValidateNmtokensValue) xmlValidateNmtokensValue __attribute((alias("xmlValidateNmtokensValue__internal_alias")));
#else
#ifndef xmlValidateNmtokensValue
extern __typeof (xmlValidateNmtokensValue) xmlValidateNmtokensValue__internal_alias __attribute((visibility("hidden")));
#define xmlValidateNmtokensValue xmlValidateNmtokensValue__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_VALID_ENABLED)
#ifdef bottom_valid
#undef xmlValidateNotationDecl
extern __typeof (xmlValidateNotationDecl) xmlValidateNotationDecl __attribute((alias("xmlValidateNotationDecl__internal_alias")));
#else
#ifndef xmlValidateNotationDecl
extern __typeof (xmlValidateNotationDecl) xmlValidateNotationDecl__internal_alias __attribute((visibility("hidden")));
#define xmlValidateNotationDecl xmlValidateNotationDecl__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_VALID_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)
#ifdef bottom_valid
#undef xmlValidateNotationUse
extern __typeof (xmlValidateNotationUse) xmlValidateNotationUse __attribute((alias("xmlValidateNotationUse__internal_alias")));
#else
#ifndef xmlValidateNotationUse
extern __typeof (xmlValidateNotationUse) xmlValidateNotationUse__internal_alias __attribute((visibility("hidden")));
#define xmlValidateNotationUse xmlValidateNotationUse__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_VALID_ENABLED)
#ifdef bottom_valid
#undef xmlValidateOneAttribute
extern __typeof (xmlValidateOneAttribute) xmlValidateOneAttribute __attribute((alias("xmlValidateOneAttribute__internal_alias")));
#else
#ifndef xmlValidateOneAttribute
extern __typeof (xmlValidateOneAttribute) xmlValidateOneAttribute__internal_alias __attribute((visibility("hidden")));
#define xmlValidateOneAttribute xmlValidateOneAttribute__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_VALID_ENABLED)
#ifdef bottom_valid
#undef xmlValidateOneElement
extern __typeof (xmlValidateOneElement) xmlValidateOneElement __attribute((alias("xmlValidateOneElement__internal_alias")));
#else
#ifndef xmlValidateOneElement
extern __typeof (xmlValidateOneElement) xmlValidateOneElement__internal_alias __attribute((visibility("hidden")));
#define xmlValidateOneElement xmlValidateOneElement__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_VALID_ENABLED)
#ifdef bottom_valid
#undef xmlValidateOneNamespace
extern __typeof (xmlValidateOneNamespace) xmlValidateOneNamespace __attribute((alias("xmlValidateOneNamespace__internal_alias")));
#else
#ifndef xmlValidateOneNamespace
extern __typeof (xmlValidateOneNamespace) xmlValidateOneNamespace__internal_alias __attribute((visibility("hidden")));
#define xmlValidateOneNamespace xmlValidateOneNamespace__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_VALID_ENABLED) && defined(LIBXML_REGEXP_ENABLED)
#ifdef bottom_valid
#undef xmlValidatePopElement
extern __typeof (xmlValidatePopElement) xmlValidatePopElement __attribute((alias("xmlValidatePopElement__internal_alias")));
#else
#ifndef xmlValidatePopElement
extern __typeof (xmlValidatePopElement) xmlValidatePopElement__internal_alias __attribute((visibility("hidden")));
#define xmlValidatePopElement xmlValidatePopElement__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_VALID_ENABLED) && defined(LIBXML_REGEXP_ENABLED)
#ifdef bottom_valid
#undef xmlValidatePushCData
extern __typeof (xmlValidatePushCData) xmlValidatePushCData __attribute((alias("xmlValidatePushCData__internal_alias")));
#else
#ifndef xmlValidatePushCData
extern __typeof (xmlValidatePushCData) xmlValidatePushCData__internal_alias __attribute((visibility("hidden")));
#define xmlValidatePushCData xmlValidatePushCData__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_VALID_ENABLED) && defined(LIBXML_REGEXP_ENABLED)
#ifdef bottom_valid
#undef xmlValidatePushElement
extern __typeof (xmlValidatePushElement) xmlValidatePushElement __attribute((alias("xmlValidatePushElement__internal_alias")));
#else
#ifndef xmlValidatePushElement
extern __typeof (xmlValidatePushElement) xmlValidatePushElement__internal_alias __attribute((visibility("hidden")));
#define xmlValidatePushElement xmlValidatePushElement__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)
#ifdef bottom_tree
#undef xmlValidateQName
extern __typeof (xmlValidateQName) xmlValidateQName __attribute((alias("xmlValidateQName__internal_alias")));
#else
#ifndef xmlValidateQName
extern __typeof (xmlValidateQName) xmlValidateQName__internal_alias __attribute((visibility("hidden")));
#define xmlValidateQName xmlValidateQName__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_VALID_ENABLED)
#ifdef bottom_valid
#undef xmlValidateRoot
extern __typeof (xmlValidateRoot) xmlValidateRoot __attribute((alias("xmlValidateRoot__internal_alias")));
#else
#ifndef xmlValidateRoot
extern __typeof (xmlValidateRoot) xmlValidateRoot__internal_alias __attribute((visibility("hidden")));
#define xmlValidateRoot xmlValidateRoot__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XINCLUDE_ENABLED)
#ifdef bottom_xinclude
#undef xmlXIncludeFreeContext
extern __typeof (xmlXIncludeFreeContext) xmlXIncludeFreeContext __attribute((alias("xmlXIncludeFreeContext__internal_alias")));
#else
#ifndef xmlXIncludeFreeContext
extern __typeof (xmlXIncludeFreeContext) xmlXIncludeFreeContext__internal_alias __attribute((visibility("hidden")));
#define xmlXIncludeFreeContext xmlXIncludeFreeContext__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XINCLUDE_ENABLED)
#ifdef bottom_xinclude
#undef xmlXIncludeNewContext
extern __typeof (xmlXIncludeNewContext) xmlXIncludeNewContext __attribute((alias("xmlXIncludeNewContext__internal_alias")));
#else
#ifndef xmlXIncludeNewContext
extern __typeof (xmlXIncludeNewContext) xmlXIncludeNewContext__internal_alias __attribute((visibility("hidden")));
#define xmlXIncludeNewContext xmlXIncludeNewContext__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XINCLUDE_ENABLED)
#ifdef bottom_xinclude
#undef xmlXIncludeProcess
extern __typeof (xmlXIncludeProcess) xmlXIncludeProcess __attribute((alias("xmlXIncludeProcess__internal_alias")));
#else
#ifndef xmlXIncludeProcess
extern __typeof (xmlXIncludeProcess) xmlXIncludeProcess__internal_alias __attribute((visibility("hidden")));
#define xmlXIncludeProcess xmlXIncludeProcess__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XINCLUDE_ENABLED)
#ifdef bottom_xinclude
#undef xmlXIncludeProcessFlags
extern __typeof (xmlXIncludeProcessFlags) xmlXIncludeProcessFlags __attribute((alias("xmlXIncludeProcessFlags__internal_alias")));
#else
#ifndef xmlXIncludeProcessFlags
extern __typeof (xmlXIncludeProcessFlags) xmlXIncludeProcessFlags__internal_alias __attribute((visibility("hidden")));
#define xmlXIncludeProcessFlags xmlXIncludeProcessFlags__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XINCLUDE_ENABLED)
#ifdef bottom_xinclude
#undef xmlXIncludeProcessNode
extern __typeof (xmlXIncludeProcessNode) xmlXIncludeProcessNode __attribute((alias("xmlXIncludeProcessNode__internal_alias")));
#else
#ifndef xmlXIncludeProcessNode
extern __typeof (xmlXIncludeProcessNode) xmlXIncludeProcessNode__internal_alias __attribute((visibility("hidden")));
#define xmlXIncludeProcessNode xmlXIncludeProcessNode__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XINCLUDE_ENABLED)
#ifdef bottom_xinclude
#undef xmlXIncludeProcessTree
extern __typeof (xmlXIncludeProcessTree) xmlXIncludeProcessTree __attribute((alias("xmlXIncludeProcessTree__internal_alias")));
#else
#ifndef xmlXIncludeProcessTree
extern __typeof (xmlXIncludeProcessTree) xmlXIncludeProcessTree__internal_alias __attribute((visibility("hidden")));
#define xmlXIncludeProcessTree xmlXIncludeProcessTree__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XINCLUDE_ENABLED)
#ifdef bottom_xinclude
#undef xmlXIncludeProcessTreeFlags
extern __typeof (xmlXIncludeProcessTreeFlags) xmlXIncludeProcessTreeFlags __attribute((alias("xmlXIncludeProcessTreeFlags__internal_alias")));
#else
#ifndef xmlXIncludeProcessTreeFlags
extern __typeof (xmlXIncludeProcessTreeFlags) xmlXIncludeProcessTreeFlags__internal_alias __attribute((visibility("hidden")));
#define xmlXIncludeProcessTreeFlags xmlXIncludeProcessTreeFlags__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XINCLUDE_ENABLED)
#ifdef bottom_xinclude
#undef xmlXIncludeSetFlags
extern __typeof (xmlXIncludeSetFlags) xmlXIncludeSetFlags __attribute((alias("xmlXIncludeSetFlags__internal_alias")));
#else
#ifndef xmlXIncludeSetFlags
extern __typeof (xmlXIncludeSetFlags) xmlXIncludeSetFlags__internal_alias __attribute((visibility("hidden")));
#define xmlXIncludeSetFlags xmlXIncludeSetFlags__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathAddValues
extern __typeof (xmlXPathAddValues) xmlXPathAddValues __attribute((alias("xmlXPathAddValues__internal_alias")));
#else
#ifndef xmlXPathAddValues
extern __typeof (xmlXPathAddValues) xmlXPathAddValues__internal_alias __attribute((visibility("hidden")));
#define xmlXPathAddValues xmlXPathAddValues__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathBooleanFunction
extern __typeof (xmlXPathBooleanFunction) xmlXPathBooleanFunction __attribute((alias("xmlXPathBooleanFunction__internal_alias")));
#else
#ifndef xmlXPathBooleanFunction
extern __typeof (xmlXPathBooleanFunction) xmlXPathBooleanFunction__internal_alias __attribute((visibility("hidden")));
#define xmlXPathBooleanFunction xmlXPathBooleanFunction__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathCastBooleanToNumber
extern __typeof (xmlXPathCastBooleanToNumber) xmlXPathCastBooleanToNumber __attribute((alias("xmlXPathCastBooleanToNumber__internal_alias")));
#else
#ifndef xmlXPathCastBooleanToNumber
extern __typeof (xmlXPathCastBooleanToNumber) xmlXPathCastBooleanToNumber__internal_alias __attribute((visibility("hidden")));
#define xmlXPathCastBooleanToNumber xmlXPathCastBooleanToNumber__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathCastBooleanToString
extern __typeof (xmlXPathCastBooleanToString) xmlXPathCastBooleanToString __attribute((alias("xmlXPathCastBooleanToString__internal_alias")));
#else
#ifndef xmlXPathCastBooleanToString
extern __typeof (xmlXPathCastBooleanToString) xmlXPathCastBooleanToString__internal_alias __attribute((visibility("hidden")));
#define xmlXPathCastBooleanToString xmlXPathCastBooleanToString__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathCastNodeSetToBoolean
extern __typeof (xmlXPathCastNodeSetToBoolean) xmlXPathCastNodeSetToBoolean __attribute((alias("xmlXPathCastNodeSetToBoolean__internal_alias")));
#else
#ifndef xmlXPathCastNodeSetToBoolean
extern __typeof (xmlXPathCastNodeSetToBoolean) xmlXPathCastNodeSetToBoolean__internal_alias __attribute((visibility("hidden")));
#define xmlXPathCastNodeSetToBoolean xmlXPathCastNodeSetToBoolean__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathCastNodeSetToNumber
extern __typeof (xmlXPathCastNodeSetToNumber) xmlXPathCastNodeSetToNumber __attribute((alias("xmlXPathCastNodeSetToNumber__internal_alias")));
#else
#ifndef xmlXPathCastNodeSetToNumber
extern __typeof (xmlXPathCastNodeSetToNumber) xmlXPathCastNodeSetToNumber__internal_alias __attribute((visibility("hidden")));
#define xmlXPathCastNodeSetToNumber xmlXPathCastNodeSetToNumber__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathCastNodeSetToString
extern __typeof (xmlXPathCastNodeSetToString) xmlXPathCastNodeSetToString __attribute((alias("xmlXPathCastNodeSetToString__internal_alias")));
#else
#ifndef xmlXPathCastNodeSetToString
extern __typeof (xmlXPathCastNodeSetToString) xmlXPathCastNodeSetToString__internal_alias __attribute((visibility("hidden")));
#define xmlXPathCastNodeSetToString xmlXPathCastNodeSetToString__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathCastNodeToNumber
extern __typeof (xmlXPathCastNodeToNumber) xmlXPathCastNodeToNumber __attribute((alias("xmlXPathCastNodeToNumber__internal_alias")));
#else
#ifndef xmlXPathCastNodeToNumber
extern __typeof (xmlXPathCastNodeToNumber) xmlXPathCastNodeToNumber__internal_alias __attribute((visibility("hidden")));
#define xmlXPathCastNodeToNumber xmlXPathCastNodeToNumber__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathCastNodeToString
extern __typeof (xmlXPathCastNodeToString) xmlXPathCastNodeToString __attribute((alias("xmlXPathCastNodeToString__internal_alias")));
#else
#ifndef xmlXPathCastNodeToString
extern __typeof (xmlXPathCastNodeToString) xmlXPathCastNodeToString__internal_alias __attribute((visibility("hidden")));
#define xmlXPathCastNodeToString xmlXPathCastNodeToString__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathCastNumberToBoolean
extern __typeof (xmlXPathCastNumberToBoolean) xmlXPathCastNumberToBoolean __attribute((alias("xmlXPathCastNumberToBoolean__internal_alias")));
#else
#ifndef xmlXPathCastNumberToBoolean
extern __typeof (xmlXPathCastNumberToBoolean) xmlXPathCastNumberToBoolean__internal_alias __attribute((visibility("hidden")));
#define xmlXPathCastNumberToBoolean xmlXPathCastNumberToBoolean__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathCastNumberToString
extern __typeof (xmlXPathCastNumberToString) xmlXPathCastNumberToString __attribute((alias("xmlXPathCastNumberToString__internal_alias")));
#else
#ifndef xmlXPathCastNumberToString
extern __typeof (xmlXPathCastNumberToString) xmlXPathCastNumberToString__internal_alias __attribute((visibility("hidden")));
#define xmlXPathCastNumberToString xmlXPathCastNumberToString__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathCastStringToBoolean
extern __typeof (xmlXPathCastStringToBoolean) xmlXPathCastStringToBoolean __attribute((alias("xmlXPathCastStringToBoolean__internal_alias")));
#else
#ifndef xmlXPathCastStringToBoolean
extern __typeof (xmlXPathCastStringToBoolean) xmlXPathCastStringToBoolean__internal_alias __attribute((visibility("hidden")));
#define xmlXPathCastStringToBoolean xmlXPathCastStringToBoolean__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathCastStringToNumber
extern __typeof (xmlXPathCastStringToNumber) xmlXPathCastStringToNumber __attribute((alias("xmlXPathCastStringToNumber__internal_alias")));
#else
#ifndef xmlXPathCastStringToNumber
extern __typeof (xmlXPathCastStringToNumber) xmlXPathCastStringToNumber__internal_alias __attribute((visibility("hidden")));
#define xmlXPathCastStringToNumber xmlXPathCastStringToNumber__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathCastToBoolean
extern __typeof (xmlXPathCastToBoolean) xmlXPathCastToBoolean __attribute((alias("xmlXPathCastToBoolean__internal_alias")));
#else
#ifndef xmlXPathCastToBoolean
extern __typeof (xmlXPathCastToBoolean) xmlXPathCastToBoolean__internal_alias __attribute((visibility("hidden")));
#define xmlXPathCastToBoolean xmlXPathCastToBoolean__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathCastToNumber
extern __typeof (xmlXPathCastToNumber) xmlXPathCastToNumber __attribute((alias("xmlXPathCastToNumber__internal_alias")));
#else
#ifndef xmlXPathCastToNumber
extern __typeof (xmlXPathCastToNumber) xmlXPathCastToNumber__internal_alias __attribute((visibility("hidden")));
#define xmlXPathCastToNumber xmlXPathCastToNumber__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathCastToString
extern __typeof (xmlXPathCastToString) xmlXPathCastToString __attribute((alias("xmlXPathCastToString__internal_alias")));
#else
#ifndef xmlXPathCastToString
extern __typeof (xmlXPathCastToString) xmlXPathCastToString__internal_alias __attribute((visibility("hidden")));
#define xmlXPathCastToString xmlXPathCastToString__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathCeilingFunction
extern __typeof (xmlXPathCeilingFunction) xmlXPathCeilingFunction __attribute((alias("xmlXPathCeilingFunction__internal_alias")));
#else
#ifndef xmlXPathCeilingFunction
extern __typeof (xmlXPathCeilingFunction) xmlXPathCeilingFunction__internal_alias __attribute((visibility("hidden")));
#define xmlXPathCeilingFunction xmlXPathCeilingFunction__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathCmpNodes
extern __typeof (xmlXPathCmpNodes) xmlXPathCmpNodes __attribute((alias("xmlXPathCmpNodes__internal_alias")));
#else
#ifndef xmlXPathCmpNodes
extern __typeof (xmlXPathCmpNodes) xmlXPathCmpNodes__internal_alias __attribute((visibility("hidden")));
#define xmlXPathCmpNodes xmlXPathCmpNodes__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathCompareValues
extern __typeof (xmlXPathCompareValues) xmlXPathCompareValues __attribute((alias("xmlXPathCompareValues__internal_alias")));
#else
#ifndef xmlXPathCompareValues
extern __typeof (xmlXPathCompareValues) xmlXPathCompareValues__internal_alias __attribute((visibility("hidden")));
#define xmlXPathCompareValues xmlXPathCompareValues__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathCompile
extern __typeof (xmlXPathCompile) xmlXPathCompile __attribute((alias("xmlXPathCompile__internal_alias")));
#else
#ifndef xmlXPathCompile
extern __typeof (xmlXPathCompile) xmlXPathCompile__internal_alias __attribute((visibility("hidden")));
#define xmlXPathCompile xmlXPathCompile__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathCompiledEval
extern __typeof (xmlXPathCompiledEval) xmlXPathCompiledEval __attribute((alias("xmlXPathCompiledEval__internal_alias")));
#else
#ifndef xmlXPathCompiledEval
extern __typeof (xmlXPathCompiledEval) xmlXPathCompiledEval__internal_alias __attribute((visibility("hidden")));
#define xmlXPathCompiledEval xmlXPathCompiledEval__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathConcatFunction
extern __typeof (xmlXPathConcatFunction) xmlXPathConcatFunction __attribute((alias("xmlXPathConcatFunction__internal_alias")));
#else
#ifndef xmlXPathConcatFunction
extern __typeof (xmlXPathConcatFunction) xmlXPathConcatFunction__internal_alias __attribute((visibility("hidden")));
#define xmlXPathConcatFunction xmlXPathConcatFunction__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathContainsFunction
extern __typeof (xmlXPathContainsFunction) xmlXPathContainsFunction __attribute((alias("xmlXPathContainsFunction__internal_alias")));
#else
#ifndef xmlXPathContainsFunction
extern __typeof (xmlXPathContainsFunction) xmlXPathContainsFunction__internal_alias __attribute((visibility("hidden")));
#define xmlXPathContainsFunction xmlXPathContainsFunction__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathConvertBoolean
extern __typeof (xmlXPathConvertBoolean) xmlXPathConvertBoolean __attribute((alias("xmlXPathConvertBoolean__internal_alias")));
#else
#ifndef xmlXPathConvertBoolean
extern __typeof (xmlXPathConvertBoolean) xmlXPathConvertBoolean__internal_alias __attribute((visibility("hidden")));
#define xmlXPathConvertBoolean xmlXPathConvertBoolean__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathConvertNumber
extern __typeof (xmlXPathConvertNumber) xmlXPathConvertNumber __attribute((alias("xmlXPathConvertNumber__internal_alias")));
#else
#ifndef xmlXPathConvertNumber
extern __typeof (xmlXPathConvertNumber) xmlXPathConvertNumber__internal_alias __attribute((visibility("hidden")));
#define xmlXPathConvertNumber xmlXPathConvertNumber__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathConvertString
extern __typeof (xmlXPathConvertString) xmlXPathConvertString __attribute((alias("xmlXPathConvertString__internal_alias")));
#else
#ifndef xmlXPathConvertString
extern __typeof (xmlXPathConvertString) xmlXPathConvertString__internal_alias __attribute((visibility("hidden")));
#define xmlXPathConvertString xmlXPathConvertString__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathCountFunction
extern __typeof (xmlXPathCountFunction) xmlXPathCountFunction __attribute((alias("xmlXPathCountFunction__internal_alias")));
#else
#ifndef xmlXPathCountFunction
extern __typeof (xmlXPathCountFunction) xmlXPathCountFunction__internal_alias __attribute((visibility("hidden")));
#define xmlXPathCountFunction xmlXPathCountFunction__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathCtxtCompile
extern __typeof (xmlXPathCtxtCompile) xmlXPathCtxtCompile __attribute((alias("xmlXPathCtxtCompile__internal_alias")));
#else
#ifndef xmlXPathCtxtCompile
extern __typeof (xmlXPathCtxtCompile) xmlXPathCtxtCompile__internal_alias __attribute((visibility("hidden")));
#define xmlXPathCtxtCompile xmlXPathCtxtCompile__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED) && defined(LIBXML_DEBUG_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathDebugDumpCompExpr
extern __typeof (xmlXPathDebugDumpCompExpr) xmlXPathDebugDumpCompExpr __attribute((alias("xmlXPathDebugDumpCompExpr__internal_alias")));
#else
#ifndef xmlXPathDebugDumpCompExpr
extern __typeof (xmlXPathDebugDumpCompExpr) xmlXPathDebugDumpCompExpr__internal_alias __attribute((visibility("hidden")));
#define xmlXPathDebugDumpCompExpr xmlXPathDebugDumpCompExpr__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED) && defined(LIBXML_DEBUG_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathDebugDumpObject
extern __typeof (xmlXPathDebugDumpObject) xmlXPathDebugDumpObject __attribute((alias("xmlXPathDebugDumpObject__internal_alias")));
#else
#ifndef xmlXPathDebugDumpObject
extern __typeof (xmlXPathDebugDumpObject) xmlXPathDebugDumpObject__internal_alias __attribute((visibility("hidden")));
#define xmlXPathDebugDumpObject xmlXPathDebugDumpObject__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathDifference
extern __typeof (xmlXPathDifference) xmlXPathDifference __attribute((alias("xmlXPathDifference__internal_alias")));
#else
#ifndef xmlXPathDifference
extern __typeof (xmlXPathDifference) xmlXPathDifference__internal_alias __attribute((visibility("hidden")));
#define xmlXPathDifference xmlXPathDifference__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathDistinct
extern __typeof (xmlXPathDistinct) xmlXPathDistinct __attribute((alias("xmlXPathDistinct__internal_alias")));
#else
#ifndef xmlXPathDistinct
extern __typeof (xmlXPathDistinct) xmlXPathDistinct__internal_alias __attribute((visibility("hidden")));
#define xmlXPathDistinct xmlXPathDistinct__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathDistinctSorted
extern __typeof (xmlXPathDistinctSorted) xmlXPathDistinctSorted __attribute((alias("xmlXPathDistinctSorted__internal_alias")));
#else
#ifndef xmlXPathDistinctSorted
extern __typeof (xmlXPathDistinctSorted) xmlXPathDistinctSorted__internal_alias __attribute((visibility("hidden")));
#define xmlXPathDistinctSorted xmlXPathDistinctSorted__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathDivValues
extern __typeof (xmlXPathDivValues) xmlXPathDivValues __attribute((alias("xmlXPathDivValues__internal_alias")));
#else
#ifndef xmlXPathDivValues
extern __typeof (xmlXPathDivValues) xmlXPathDivValues__internal_alias __attribute((visibility("hidden")));
#define xmlXPathDivValues xmlXPathDivValues__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathEqualValues
extern __typeof (xmlXPathEqualValues) xmlXPathEqualValues __attribute((alias("xmlXPathEqualValues__internal_alias")));
#else
#ifndef xmlXPathEqualValues
extern __typeof (xmlXPathEqualValues) xmlXPathEqualValues__internal_alias __attribute((visibility("hidden")));
#define xmlXPathEqualValues xmlXPathEqualValues__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathErr
extern __typeof (xmlXPathErr) xmlXPathErr __attribute((alias("xmlXPathErr__internal_alias")));
#else
#ifndef xmlXPathErr
extern __typeof (xmlXPathErr) xmlXPathErr__internal_alias __attribute((visibility("hidden")));
#define xmlXPathErr xmlXPathErr__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathEval
extern __typeof (xmlXPathEval) xmlXPathEval __attribute((alias("xmlXPathEval__internal_alias")));
#else
#ifndef xmlXPathEval
extern __typeof (xmlXPathEval) xmlXPathEval__internal_alias __attribute((visibility("hidden")));
#define xmlXPathEval xmlXPathEval__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathEvalExpr
extern __typeof (xmlXPathEvalExpr) xmlXPathEvalExpr __attribute((alias("xmlXPathEvalExpr__internal_alias")));
#else
#ifndef xmlXPathEvalExpr
extern __typeof (xmlXPathEvalExpr) xmlXPathEvalExpr__internal_alias __attribute((visibility("hidden")));
#define xmlXPathEvalExpr xmlXPathEvalExpr__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathEvalExpression
extern __typeof (xmlXPathEvalExpression) xmlXPathEvalExpression __attribute((alias("xmlXPathEvalExpression__internal_alias")));
#else
#ifndef xmlXPathEvalExpression
extern __typeof (xmlXPathEvalExpression) xmlXPathEvalExpression__internal_alias __attribute((visibility("hidden")));
#define xmlXPathEvalExpression xmlXPathEvalExpression__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathEvalPredicate
extern __typeof (xmlXPathEvalPredicate) xmlXPathEvalPredicate __attribute((alias("xmlXPathEvalPredicate__internal_alias")));
#else
#ifndef xmlXPathEvalPredicate
extern __typeof (xmlXPathEvalPredicate) xmlXPathEvalPredicate__internal_alias __attribute((visibility("hidden")));
#define xmlXPathEvalPredicate xmlXPathEvalPredicate__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathEvaluatePredicateResult
extern __typeof (xmlXPathEvaluatePredicateResult) xmlXPathEvaluatePredicateResult __attribute((alias("xmlXPathEvaluatePredicateResult__internal_alias")));
#else
#ifndef xmlXPathEvaluatePredicateResult
extern __typeof (xmlXPathEvaluatePredicateResult) xmlXPathEvaluatePredicateResult__internal_alias __attribute((visibility("hidden")));
#define xmlXPathEvaluatePredicateResult xmlXPathEvaluatePredicateResult__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathFalseFunction
extern __typeof (xmlXPathFalseFunction) xmlXPathFalseFunction __attribute((alias("xmlXPathFalseFunction__internal_alias")));
#else
#ifndef xmlXPathFalseFunction
extern __typeof (xmlXPathFalseFunction) xmlXPathFalseFunction__internal_alias __attribute((visibility("hidden")));
#define xmlXPathFalseFunction xmlXPathFalseFunction__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathFloorFunction
extern __typeof (xmlXPathFloorFunction) xmlXPathFloorFunction __attribute((alias("xmlXPathFloorFunction__internal_alias")));
#else
#ifndef xmlXPathFloorFunction
extern __typeof (xmlXPathFloorFunction) xmlXPathFloorFunction__internal_alias __attribute((visibility("hidden")));
#define xmlXPathFloorFunction xmlXPathFloorFunction__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathFreeCompExpr
extern __typeof (xmlXPathFreeCompExpr) xmlXPathFreeCompExpr __attribute((alias("xmlXPathFreeCompExpr__internal_alias")));
#else
#ifndef xmlXPathFreeCompExpr
extern __typeof (xmlXPathFreeCompExpr) xmlXPathFreeCompExpr__internal_alias __attribute((visibility("hidden")));
#define xmlXPathFreeCompExpr xmlXPathFreeCompExpr__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathFreeContext
extern __typeof (xmlXPathFreeContext) xmlXPathFreeContext __attribute((alias("xmlXPathFreeContext__internal_alias")));
#else
#ifndef xmlXPathFreeContext
extern __typeof (xmlXPathFreeContext) xmlXPathFreeContext__internal_alias __attribute((visibility("hidden")));
#define xmlXPathFreeContext xmlXPathFreeContext__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathFreeNodeSet
extern __typeof (xmlXPathFreeNodeSet) xmlXPathFreeNodeSet __attribute((alias("xmlXPathFreeNodeSet__internal_alias")));
#else
#ifndef xmlXPathFreeNodeSet
extern __typeof (xmlXPathFreeNodeSet) xmlXPathFreeNodeSet__internal_alias __attribute((visibility("hidden")));
#define xmlXPathFreeNodeSet xmlXPathFreeNodeSet__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathFreeNodeSetList
extern __typeof (xmlXPathFreeNodeSetList) xmlXPathFreeNodeSetList __attribute((alias("xmlXPathFreeNodeSetList__internal_alias")));
#else
#ifndef xmlXPathFreeNodeSetList
extern __typeof (xmlXPathFreeNodeSetList) xmlXPathFreeNodeSetList__internal_alias __attribute((visibility("hidden")));
#define xmlXPathFreeNodeSetList xmlXPathFreeNodeSetList__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathFreeObject
extern __typeof (xmlXPathFreeObject) xmlXPathFreeObject __attribute((alias("xmlXPathFreeObject__internal_alias")));
#else
#ifndef xmlXPathFreeObject
extern __typeof (xmlXPathFreeObject) xmlXPathFreeObject__internal_alias __attribute((visibility("hidden")));
#define xmlXPathFreeObject xmlXPathFreeObject__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathFreeParserContext
extern __typeof (xmlXPathFreeParserContext) xmlXPathFreeParserContext __attribute((alias("xmlXPathFreeParserContext__internal_alias")));
#else
#ifndef xmlXPathFreeParserContext
extern __typeof (xmlXPathFreeParserContext) xmlXPathFreeParserContext__internal_alias __attribute((visibility("hidden")));
#define xmlXPathFreeParserContext xmlXPathFreeParserContext__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathFunctionLookup
extern __typeof (xmlXPathFunctionLookup) xmlXPathFunctionLookup __attribute((alias("xmlXPathFunctionLookup__internal_alias")));
#else
#ifndef xmlXPathFunctionLookup
extern __typeof (xmlXPathFunctionLookup) xmlXPathFunctionLookup__internal_alias __attribute((visibility("hidden")));
#define xmlXPathFunctionLookup xmlXPathFunctionLookup__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathFunctionLookupNS
extern __typeof (xmlXPathFunctionLookupNS) xmlXPathFunctionLookupNS __attribute((alias("xmlXPathFunctionLookupNS__internal_alias")));
#else
#ifndef xmlXPathFunctionLookupNS
extern __typeof (xmlXPathFunctionLookupNS) xmlXPathFunctionLookupNS__internal_alias __attribute((visibility("hidden")));
#define xmlXPathFunctionLookupNS xmlXPathFunctionLookupNS__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathHasSameNodes
extern __typeof (xmlXPathHasSameNodes) xmlXPathHasSameNodes __attribute((alias("xmlXPathHasSameNodes__internal_alias")));
#else
#ifndef xmlXPathHasSameNodes
extern __typeof (xmlXPathHasSameNodes) xmlXPathHasSameNodes__internal_alias __attribute((visibility("hidden")));
#define xmlXPathHasSameNodes xmlXPathHasSameNodes__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathIdFunction
extern __typeof (xmlXPathIdFunction) xmlXPathIdFunction __attribute((alias("xmlXPathIdFunction__internal_alias")));
#else
#ifndef xmlXPathIdFunction
extern __typeof (xmlXPathIdFunction) xmlXPathIdFunction__internal_alias __attribute((visibility("hidden")));
#define xmlXPathIdFunction xmlXPathIdFunction__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathInit
extern __typeof (xmlXPathInit) xmlXPathInit __attribute((alias("xmlXPathInit__internal_alias")));
#else
#ifndef xmlXPathInit
extern __typeof (xmlXPathInit) xmlXPathInit__internal_alias __attribute((visibility("hidden")));
#define xmlXPathInit xmlXPathInit__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathIntersection
extern __typeof (xmlXPathIntersection) xmlXPathIntersection __attribute((alias("xmlXPathIntersection__internal_alias")));
#else
#ifndef xmlXPathIntersection
extern __typeof (xmlXPathIntersection) xmlXPathIntersection__internal_alias __attribute((visibility("hidden")));
#define xmlXPathIntersection xmlXPathIntersection__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathIsInf
extern __typeof (xmlXPathIsInf) xmlXPathIsInf __attribute((alias("xmlXPathIsInf__internal_alias")));
#else
#ifndef xmlXPathIsInf
extern __typeof (xmlXPathIsInf) xmlXPathIsInf__internal_alias __attribute((visibility("hidden")));
#define xmlXPathIsInf xmlXPathIsInf__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathIsNaN
extern __typeof (xmlXPathIsNaN) xmlXPathIsNaN __attribute((alias("xmlXPathIsNaN__internal_alias")));
#else
#ifndef xmlXPathIsNaN
extern __typeof (xmlXPathIsNaN) xmlXPathIsNaN__internal_alias __attribute((visibility("hidden")));
#define xmlXPathIsNaN xmlXPathIsNaN__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathIsNodeType
extern __typeof (xmlXPathIsNodeType) xmlXPathIsNodeType __attribute((alias("xmlXPathIsNodeType__internal_alias")));
#else
#ifndef xmlXPathIsNodeType
extern __typeof (xmlXPathIsNodeType) xmlXPathIsNodeType__internal_alias __attribute((visibility("hidden")));
#define xmlXPathIsNodeType xmlXPathIsNodeType__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathLangFunction
extern __typeof (xmlXPathLangFunction) xmlXPathLangFunction __attribute((alias("xmlXPathLangFunction__internal_alias")));
#else
#ifndef xmlXPathLangFunction
extern __typeof (xmlXPathLangFunction) xmlXPathLangFunction__internal_alias __attribute((visibility("hidden")));
#define xmlXPathLangFunction xmlXPathLangFunction__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathLastFunction
extern __typeof (xmlXPathLastFunction) xmlXPathLastFunction __attribute((alias("xmlXPathLastFunction__internal_alias")));
#else
#ifndef xmlXPathLastFunction
extern __typeof (xmlXPathLastFunction) xmlXPathLastFunction__internal_alias __attribute((visibility("hidden")));
#define xmlXPathLastFunction xmlXPathLastFunction__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathLeading
extern __typeof (xmlXPathLeading) xmlXPathLeading __attribute((alias("xmlXPathLeading__internal_alias")));
#else
#ifndef xmlXPathLeading
extern __typeof (xmlXPathLeading) xmlXPathLeading__internal_alias __attribute((visibility("hidden")));
#define xmlXPathLeading xmlXPathLeading__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathLeadingSorted
extern __typeof (xmlXPathLeadingSorted) xmlXPathLeadingSorted __attribute((alias("xmlXPathLeadingSorted__internal_alias")));
#else
#ifndef xmlXPathLeadingSorted
extern __typeof (xmlXPathLeadingSorted) xmlXPathLeadingSorted__internal_alias __attribute((visibility("hidden")));
#define xmlXPathLeadingSorted xmlXPathLeadingSorted__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathLocalNameFunction
extern __typeof (xmlXPathLocalNameFunction) xmlXPathLocalNameFunction __attribute((alias("xmlXPathLocalNameFunction__internal_alias")));
#else
#ifndef xmlXPathLocalNameFunction
extern __typeof (xmlXPathLocalNameFunction) xmlXPathLocalNameFunction__internal_alias __attribute((visibility("hidden")));
#define xmlXPathLocalNameFunction xmlXPathLocalNameFunction__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathModValues
extern __typeof (xmlXPathModValues) xmlXPathModValues __attribute((alias("xmlXPathModValues__internal_alias")));
#else
#ifndef xmlXPathModValues
extern __typeof (xmlXPathModValues) xmlXPathModValues__internal_alias __attribute((visibility("hidden")));
#define xmlXPathModValues xmlXPathModValues__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathMultValues
extern __typeof (xmlXPathMultValues) xmlXPathMultValues __attribute((alias("xmlXPathMultValues__internal_alias")));
#else
#ifndef xmlXPathMultValues
extern __typeof (xmlXPathMultValues) xmlXPathMultValues__internal_alias __attribute((visibility("hidden")));
#define xmlXPathMultValues xmlXPathMultValues__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathNamespaceURIFunction
extern __typeof (xmlXPathNamespaceURIFunction) xmlXPathNamespaceURIFunction __attribute((alias("xmlXPathNamespaceURIFunction__internal_alias")));
#else
#ifndef xmlXPathNamespaceURIFunction
extern __typeof (xmlXPathNamespaceURIFunction) xmlXPathNamespaceURIFunction__internal_alias __attribute((visibility("hidden")));
#define xmlXPathNamespaceURIFunction xmlXPathNamespaceURIFunction__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathNewBoolean
extern __typeof (xmlXPathNewBoolean) xmlXPathNewBoolean __attribute((alias("xmlXPathNewBoolean__internal_alias")));
#else
#ifndef xmlXPathNewBoolean
extern __typeof (xmlXPathNewBoolean) xmlXPathNewBoolean__internal_alias __attribute((visibility("hidden")));
#define xmlXPathNewBoolean xmlXPathNewBoolean__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathNewCString
extern __typeof (xmlXPathNewCString) xmlXPathNewCString __attribute((alias("xmlXPathNewCString__internal_alias")));
#else
#ifndef xmlXPathNewCString
extern __typeof (xmlXPathNewCString) xmlXPathNewCString__internal_alias __attribute((visibility("hidden")));
#define xmlXPathNewCString xmlXPathNewCString__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathNewContext
extern __typeof (xmlXPathNewContext) xmlXPathNewContext __attribute((alias("xmlXPathNewContext__internal_alias")));
#else
#ifndef xmlXPathNewContext
extern __typeof (xmlXPathNewContext) xmlXPathNewContext__internal_alias __attribute((visibility("hidden")));
#define xmlXPathNewContext xmlXPathNewContext__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathNewFloat
extern __typeof (xmlXPathNewFloat) xmlXPathNewFloat __attribute((alias("xmlXPathNewFloat__internal_alias")));
#else
#ifndef xmlXPathNewFloat
extern __typeof (xmlXPathNewFloat) xmlXPathNewFloat__internal_alias __attribute((visibility("hidden")));
#define xmlXPathNewFloat xmlXPathNewFloat__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathNewNodeSet
extern __typeof (xmlXPathNewNodeSet) xmlXPathNewNodeSet __attribute((alias("xmlXPathNewNodeSet__internal_alias")));
#else
#ifndef xmlXPathNewNodeSet
extern __typeof (xmlXPathNewNodeSet) xmlXPathNewNodeSet__internal_alias __attribute((visibility("hidden")));
#define xmlXPathNewNodeSet xmlXPathNewNodeSet__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathNewNodeSetList
extern __typeof (xmlXPathNewNodeSetList) xmlXPathNewNodeSetList __attribute((alias("xmlXPathNewNodeSetList__internal_alias")));
#else
#ifndef xmlXPathNewNodeSetList
extern __typeof (xmlXPathNewNodeSetList) xmlXPathNewNodeSetList__internal_alias __attribute((visibility("hidden")));
#define xmlXPathNewNodeSetList xmlXPathNewNodeSetList__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathNewParserContext
extern __typeof (xmlXPathNewParserContext) xmlXPathNewParserContext __attribute((alias("xmlXPathNewParserContext__internal_alias")));
#else
#ifndef xmlXPathNewParserContext
extern __typeof (xmlXPathNewParserContext) xmlXPathNewParserContext__internal_alias __attribute((visibility("hidden")));
#define xmlXPathNewParserContext xmlXPathNewParserContext__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathNewString
extern __typeof (xmlXPathNewString) xmlXPathNewString __attribute((alias("xmlXPathNewString__internal_alias")));
#else
#ifndef xmlXPathNewString
extern __typeof (xmlXPathNewString) xmlXPathNewString__internal_alias __attribute((visibility("hidden")));
#define xmlXPathNewString xmlXPathNewString__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathNewValueTree
extern __typeof (xmlXPathNewValueTree) xmlXPathNewValueTree __attribute((alias("xmlXPathNewValueTree__internal_alias")));
#else
#ifndef xmlXPathNewValueTree
extern __typeof (xmlXPathNewValueTree) xmlXPathNewValueTree__internal_alias __attribute((visibility("hidden")));
#define xmlXPathNewValueTree xmlXPathNewValueTree__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathNextAncestor
extern __typeof (xmlXPathNextAncestor) xmlXPathNextAncestor __attribute((alias("xmlXPathNextAncestor__internal_alias")));
#else
#ifndef xmlXPathNextAncestor
extern __typeof (xmlXPathNextAncestor) xmlXPathNextAncestor__internal_alias __attribute((visibility("hidden")));
#define xmlXPathNextAncestor xmlXPathNextAncestor__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathNextAncestorOrSelf
extern __typeof (xmlXPathNextAncestorOrSelf) xmlXPathNextAncestorOrSelf __attribute((alias("xmlXPathNextAncestorOrSelf__internal_alias")));
#else
#ifndef xmlXPathNextAncestorOrSelf
extern __typeof (xmlXPathNextAncestorOrSelf) xmlXPathNextAncestorOrSelf__internal_alias __attribute((visibility("hidden")));
#define xmlXPathNextAncestorOrSelf xmlXPathNextAncestorOrSelf__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathNextAttribute
extern __typeof (xmlXPathNextAttribute) xmlXPathNextAttribute __attribute((alias("xmlXPathNextAttribute__internal_alias")));
#else
#ifndef xmlXPathNextAttribute
extern __typeof (xmlXPathNextAttribute) xmlXPathNextAttribute__internal_alias __attribute((visibility("hidden")));
#define xmlXPathNextAttribute xmlXPathNextAttribute__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathNextChild
extern __typeof (xmlXPathNextChild) xmlXPathNextChild __attribute((alias("xmlXPathNextChild__internal_alias")));
#else
#ifndef xmlXPathNextChild
extern __typeof (xmlXPathNextChild) xmlXPathNextChild__internal_alias __attribute((visibility("hidden")));
#define xmlXPathNextChild xmlXPathNextChild__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathNextDescendant
extern __typeof (xmlXPathNextDescendant) xmlXPathNextDescendant __attribute((alias("xmlXPathNextDescendant__internal_alias")));
#else
#ifndef xmlXPathNextDescendant
extern __typeof (xmlXPathNextDescendant) xmlXPathNextDescendant__internal_alias __attribute((visibility("hidden")));
#define xmlXPathNextDescendant xmlXPathNextDescendant__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathNextDescendantOrSelf
extern __typeof (xmlXPathNextDescendantOrSelf) xmlXPathNextDescendantOrSelf __attribute((alias("xmlXPathNextDescendantOrSelf__internal_alias")));
#else
#ifndef xmlXPathNextDescendantOrSelf
extern __typeof (xmlXPathNextDescendantOrSelf) xmlXPathNextDescendantOrSelf__internal_alias __attribute((visibility("hidden")));
#define xmlXPathNextDescendantOrSelf xmlXPathNextDescendantOrSelf__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathNextFollowing
extern __typeof (xmlXPathNextFollowing) xmlXPathNextFollowing __attribute((alias("xmlXPathNextFollowing__internal_alias")));
#else
#ifndef xmlXPathNextFollowing
extern __typeof (xmlXPathNextFollowing) xmlXPathNextFollowing__internal_alias __attribute((visibility("hidden")));
#define xmlXPathNextFollowing xmlXPathNextFollowing__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathNextFollowingSibling
extern __typeof (xmlXPathNextFollowingSibling) xmlXPathNextFollowingSibling __attribute((alias("xmlXPathNextFollowingSibling__internal_alias")));
#else
#ifndef xmlXPathNextFollowingSibling
extern __typeof (xmlXPathNextFollowingSibling) xmlXPathNextFollowingSibling__internal_alias __attribute((visibility("hidden")));
#define xmlXPathNextFollowingSibling xmlXPathNextFollowingSibling__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathNextNamespace
extern __typeof (xmlXPathNextNamespace) xmlXPathNextNamespace __attribute((alias("xmlXPathNextNamespace__internal_alias")));
#else
#ifndef xmlXPathNextNamespace
extern __typeof (xmlXPathNextNamespace) xmlXPathNextNamespace__internal_alias __attribute((visibility("hidden")));
#define xmlXPathNextNamespace xmlXPathNextNamespace__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathNextParent
extern __typeof (xmlXPathNextParent) xmlXPathNextParent __attribute((alias("xmlXPathNextParent__internal_alias")));
#else
#ifndef xmlXPathNextParent
extern __typeof (xmlXPathNextParent) xmlXPathNextParent__internal_alias __attribute((visibility("hidden")));
#define xmlXPathNextParent xmlXPathNextParent__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathNextPreceding
extern __typeof (xmlXPathNextPreceding) xmlXPathNextPreceding __attribute((alias("xmlXPathNextPreceding__internal_alias")));
#else
#ifndef xmlXPathNextPreceding
extern __typeof (xmlXPathNextPreceding) xmlXPathNextPreceding__internal_alias __attribute((visibility("hidden")));
#define xmlXPathNextPreceding xmlXPathNextPreceding__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathNextPrecedingSibling
extern __typeof (xmlXPathNextPrecedingSibling) xmlXPathNextPrecedingSibling __attribute((alias("xmlXPathNextPrecedingSibling__internal_alias")));
#else
#ifndef xmlXPathNextPrecedingSibling
extern __typeof (xmlXPathNextPrecedingSibling) xmlXPathNextPrecedingSibling__internal_alias __attribute((visibility("hidden")));
#define xmlXPathNextPrecedingSibling xmlXPathNextPrecedingSibling__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathNextSelf
extern __typeof (xmlXPathNextSelf) xmlXPathNextSelf __attribute((alias("xmlXPathNextSelf__internal_alias")));
#else
#ifndef xmlXPathNextSelf
extern __typeof (xmlXPathNextSelf) xmlXPathNextSelf__internal_alias __attribute((visibility("hidden")));
#define xmlXPathNextSelf xmlXPathNextSelf__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathNodeLeading
extern __typeof (xmlXPathNodeLeading) xmlXPathNodeLeading __attribute((alias("xmlXPathNodeLeading__internal_alias")));
#else
#ifndef xmlXPathNodeLeading
extern __typeof (xmlXPathNodeLeading) xmlXPathNodeLeading__internal_alias __attribute((visibility("hidden")));
#define xmlXPathNodeLeading xmlXPathNodeLeading__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathNodeLeadingSorted
extern __typeof (xmlXPathNodeLeadingSorted) xmlXPathNodeLeadingSorted __attribute((alias("xmlXPathNodeLeadingSorted__internal_alias")));
#else
#ifndef xmlXPathNodeLeadingSorted
extern __typeof (xmlXPathNodeLeadingSorted) xmlXPathNodeLeadingSorted__internal_alias __attribute((visibility("hidden")));
#define xmlXPathNodeLeadingSorted xmlXPathNodeLeadingSorted__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathNodeSetAdd
extern __typeof (xmlXPathNodeSetAdd) xmlXPathNodeSetAdd __attribute((alias("xmlXPathNodeSetAdd__internal_alias")));
#else
#ifndef xmlXPathNodeSetAdd
extern __typeof (xmlXPathNodeSetAdd) xmlXPathNodeSetAdd__internal_alias __attribute((visibility("hidden")));
#define xmlXPathNodeSetAdd xmlXPathNodeSetAdd__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathNodeSetAddNs
extern __typeof (xmlXPathNodeSetAddNs) xmlXPathNodeSetAddNs __attribute((alias("xmlXPathNodeSetAddNs__internal_alias")));
#else
#ifndef xmlXPathNodeSetAddNs
extern __typeof (xmlXPathNodeSetAddNs) xmlXPathNodeSetAddNs__internal_alias __attribute((visibility("hidden")));
#define xmlXPathNodeSetAddNs xmlXPathNodeSetAddNs__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathNodeSetAddUnique
extern __typeof (xmlXPathNodeSetAddUnique) xmlXPathNodeSetAddUnique __attribute((alias("xmlXPathNodeSetAddUnique__internal_alias")));
#else
#ifndef xmlXPathNodeSetAddUnique
extern __typeof (xmlXPathNodeSetAddUnique) xmlXPathNodeSetAddUnique__internal_alias __attribute((visibility("hidden")));
#define xmlXPathNodeSetAddUnique xmlXPathNodeSetAddUnique__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathNodeSetContains
extern __typeof (xmlXPathNodeSetContains) xmlXPathNodeSetContains __attribute((alias("xmlXPathNodeSetContains__internal_alias")));
#else
#ifndef xmlXPathNodeSetContains
extern __typeof (xmlXPathNodeSetContains) xmlXPathNodeSetContains__internal_alias __attribute((visibility("hidden")));
#define xmlXPathNodeSetContains xmlXPathNodeSetContains__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathNodeSetCreate
extern __typeof (xmlXPathNodeSetCreate) xmlXPathNodeSetCreate __attribute((alias("xmlXPathNodeSetCreate__internal_alias")));
#else
#ifndef xmlXPathNodeSetCreate
extern __typeof (xmlXPathNodeSetCreate) xmlXPathNodeSetCreate__internal_alias __attribute((visibility("hidden")));
#define xmlXPathNodeSetCreate xmlXPathNodeSetCreate__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathNodeSetDel
extern __typeof (xmlXPathNodeSetDel) xmlXPathNodeSetDel __attribute((alias("xmlXPathNodeSetDel__internal_alias")));
#else
#ifndef xmlXPathNodeSetDel
extern __typeof (xmlXPathNodeSetDel) xmlXPathNodeSetDel__internal_alias __attribute((visibility("hidden")));
#define xmlXPathNodeSetDel xmlXPathNodeSetDel__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathNodeSetFreeNs
extern __typeof (xmlXPathNodeSetFreeNs) xmlXPathNodeSetFreeNs __attribute((alias("xmlXPathNodeSetFreeNs__internal_alias")));
#else
#ifndef xmlXPathNodeSetFreeNs
extern __typeof (xmlXPathNodeSetFreeNs) xmlXPathNodeSetFreeNs__internal_alias __attribute((visibility("hidden")));
#define xmlXPathNodeSetFreeNs xmlXPathNodeSetFreeNs__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathNodeSetMerge
extern __typeof (xmlXPathNodeSetMerge) xmlXPathNodeSetMerge __attribute((alias("xmlXPathNodeSetMerge__internal_alias")));
#else
#ifndef xmlXPathNodeSetMerge
extern __typeof (xmlXPathNodeSetMerge) xmlXPathNodeSetMerge__internal_alias __attribute((visibility("hidden")));
#define xmlXPathNodeSetMerge xmlXPathNodeSetMerge__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathNodeSetRemove
extern __typeof (xmlXPathNodeSetRemove) xmlXPathNodeSetRemove __attribute((alias("xmlXPathNodeSetRemove__internal_alias")));
#else
#ifndef xmlXPathNodeSetRemove
extern __typeof (xmlXPathNodeSetRemove) xmlXPathNodeSetRemove__internal_alias __attribute((visibility("hidden")));
#define xmlXPathNodeSetRemove xmlXPathNodeSetRemove__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathNodeSetSort
extern __typeof (xmlXPathNodeSetSort) xmlXPathNodeSetSort __attribute((alias("xmlXPathNodeSetSort__internal_alias")));
#else
#ifndef xmlXPathNodeSetSort
extern __typeof (xmlXPathNodeSetSort) xmlXPathNodeSetSort__internal_alias __attribute((visibility("hidden")));
#define xmlXPathNodeSetSort xmlXPathNodeSetSort__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathNodeTrailing
extern __typeof (xmlXPathNodeTrailing) xmlXPathNodeTrailing __attribute((alias("xmlXPathNodeTrailing__internal_alias")));
#else
#ifndef xmlXPathNodeTrailing
extern __typeof (xmlXPathNodeTrailing) xmlXPathNodeTrailing__internal_alias __attribute((visibility("hidden")));
#define xmlXPathNodeTrailing xmlXPathNodeTrailing__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathNodeTrailingSorted
extern __typeof (xmlXPathNodeTrailingSorted) xmlXPathNodeTrailingSorted __attribute((alias("xmlXPathNodeTrailingSorted__internal_alias")));
#else
#ifndef xmlXPathNodeTrailingSorted
extern __typeof (xmlXPathNodeTrailingSorted) xmlXPathNodeTrailingSorted__internal_alias __attribute((visibility("hidden")));
#define xmlXPathNodeTrailingSorted xmlXPathNodeTrailingSorted__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathNormalizeFunction
extern __typeof (xmlXPathNormalizeFunction) xmlXPathNormalizeFunction __attribute((alias("xmlXPathNormalizeFunction__internal_alias")));
#else
#ifndef xmlXPathNormalizeFunction
extern __typeof (xmlXPathNormalizeFunction) xmlXPathNormalizeFunction__internal_alias __attribute((visibility("hidden")));
#define xmlXPathNormalizeFunction xmlXPathNormalizeFunction__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathNotEqualValues
extern __typeof (xmlXPathNotEqualValues) xmlXPathNotEqualValues __attribute((alias("xmlXPathNotEqualValues__internal_alias")));
#else
#ifndef xmlXPathNotEqualValues
extern __typeof (xmlXPathNotEqualValues) xmlXPathNotEqualValues__internal_alias __attribute((visibility("hidden")));
#define xmlXPathNotEqualValues xmlXPathNotEqualValues__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathNotFunction
extern __typeof (xmlXPathNotFunction) xmlXPathNotFunction __attribute((alias("xmlXPathNotFunction__internal_alias")));
#else
#ifndef xmlXPathNotFunction
extern __typeof (xmlXPathNotFunction) xmlXPathNotFunction__internal_alias __attribute((visibility("hidden")));
#define xmlXPathNotFunction xmlXPathNotFunction__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathNsLookup
extern __typeof (xmlXPathNsLookup) xmlXPathNsLookup __attribute((alias("xmlXPathNsLookup__internal_alias")));
#else
#ifndef xmlXPathNsLookup
extern __typeof (xmlXPathNsLookup) xmlXPathNsLookup__internal_alias __attribute((visibility("hidden")));
#define xmlXPathNsLookup xmlXPathNsLookup__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathNumberFunction
extern __typeof (xmlXPathNumberFunction) xmlXPathNumberFunction __attribute((alias("xmlXPathNumberFunction__internal_alias")));
#else
#ifndef xmlXPathNumberFunction
extern __typeof (xmlXPathNumberFunction) xmlXPathNumberFunction__internal_alias __attribute((visibility("hidden")));
#define xmlXPathNumberFunction xmlXPathNumberFunction__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathObjectCopy
extern __typeof (xmlXPathObjectCopy) xmlXPathObjectCopy __attribute((alias("xmlXPathObjectCopy__internal_alias")));
#else
#ifndef xmlXPathObjectCopy
extern __typeof (xmlXPathObjectCopy) xmlXPathObjectCopy__internal_alias __attribute((visibility("hidden")));
#define xmlXPathObjectCopy xmlXPathObjectCopy__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathOrderDocElems
extern __typeof (xmlXPathOrderDocElems) xmlXPathOrderDocElems __attribute((alias("xmlXPathOrderDocElems__internal_alias")));
#else
#ifndef xmlXPathOrderDocElems
extern __typeof (xmlXPathOrderDocElems) xmlXPathOrderDocElems__internal_alias __attribute((visibility("hidden")));
#define xmlXPathOrderDocElems xmlXPathOrderDocElems__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathParseNCName
extern __typeof (xmlXPathParseNCName) xmlXPathParseNCName __attribute((alias("xmlXPathParseNCName__internal_alias")));
#else
#ifndef xmlXPathParseNCName
extern __typeof (xmlXPathParseNCName) xmlXPathParseNCName__internal_alias __attribute((visibility("hidden")));
#define xmlXPathParseNCName xmlXPathParseNCName__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathParseName
extern __typeof (xmlXPathParseName) xmlXPathParseName __attribute((alias("xmlXPathParseName__internal_alias")));
#else
#ifndef xmlXPathParseName
extern __typeof (xmlXPathParseName) xmlXPathParseName__internal_alias __attribute((visibility("hidden")));
#define xmlXPathParseName xmlXPathParseName__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathPopBoolean
extern __typeof (xmlXPathPopBoolean) xmlXPathPopBoolean __attribute((alias("xmlXPathPopBoolean__internal_alias")));
#else
#ifndef xmlXPathPopBoolean
extern __typeof (xmlXPathPopBoolean) xmlXPathPopBoolean__internal_alias __attribute((visibility("hidden")));
#define xmlXPathPopBoolean xmlXPathPopBoolean__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathPopExternal
extern __typeof (xmlXPathPopExternal) xmlXPathPopExternal __attribute((alias("xmlXPathPopExternal__internal_alias")));
#else
#ifndef xmlXPathPopExternal
extern __typeof (xmlXPathPopExternal) xmlXPathPopExternal__internal_alias __attribute((visibility("hidden")));
#define xmlXPathPopExternal xmlXPathPopExternal__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathPopNodeSet
extern __typeof (xmlXPathPopNodeSet) xmlXPathPopNodeSet __attribute((alias("xmlXPathPopNodeSet__internal_alias")));
#else
#ifndef xmlXPathPopNodeSet
extern __typeof (xmlXPathPopNodeSet) xmlXPathPopNodeSet__internal_alias __attribute((visibility("hidden")));
#define xmlXPathPopNodeSet xmlXPathPopNodeSet__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathPopNumber
extern __typeof (xmlXPathPopNumber) xmlXPathPopNumber __attribute((alias("xmlXPathPopNumber__internal_alias")));
#else
#ifndef xmlXPathPopNumber
extern __typeof (xmlXPathPopNumber) xmlXPathPopNumber__internal_alias __attribute((visibility("hidden")));
#define xmlXPathPopNumber xmlXPathPopNumber__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathPopString
extern __typeof (xmlXPathPopString) xmlXPathPopString __attribute((alias("xmlXPathPopString__internal_alias")));
#else
#ifndef xmlXPathPopString
extern __typeof (xmlXPathPopString) xmlXPathPopString__internal_alias __attribute((visibility("hidden")));
#define xmlXPathPopString xmlXPathPopString__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathPositionFunction
extern __typeof (xmlXPathPositionFunction) xmlXPathPositionFunction __attribute((alias("xmlXPathPositionFunction__internal_alias")));
#else
#ifndef xmlXPathPositionFunction
extern __typeof (xmlXPathPositionFunction) xmlXPathPositionFunction__internal_alias __attribute((visibility("hidden")));
#define xmlXPathPositionFunction xmlXPathPositionFunction__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathRegisterAllFunctions
extern __typeof (xmlXPathRegisterAllFunctions) xmlXPathRegisterAllFunctions __attribute((alias("xmlXPathRegisterAllFunctions__internal_alias")));
#else
#ifndef xmlXPathRegisterAllFunctions
extern __typeof (xmlXPathRegisterAllFunctions) xmlXPathRegisterAllFunctions__internal_alias __attribute((visibility("hidden")));
#define xmlXPathRegisterAllFunctions xmlXPathRegisterAllFunctions__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathRegisterFunc
extern __typeof (xmlXPathRegisterFunc) xmlXPathRegisterFunc __attribute((alias("xmlXPathRegisterFunc__internal_alias")));
#else
#ifndef xmlXPathRegisterFunc
extern __typeof (xmlXPathRegisterFunc) xmlXPathRegisterFunc__internal_alias __attribute((visibility("hidden")));
#define xmlXPathRegisterFunc xmlXPathRegisterFunc__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathRegisterFuncLookup
extern __typeof (xmlXPathRegisterFuncLookup) xmlXPathRegisterFuncLookup __attribute((alias("xmlXPathRegisterFuncLookup__internal_alias")));
#else
#ifndef xmlXPathRegisterFuncLookup
extern __typeof (xmlXPathRegisterFuncLookup) xmlXPathRegisterFuncLookup__internal_alias __attribute((visibility("hidden")));
#define xmlXPathRegisterFuncLookup xmlXPathRegisterFuncLookup__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathRegisterFuncNS
extern __typeof (xmlXPathRegisterFuncNS) xmlXPathRegisterFuncNS __attribute((alias("xmlXPathRegisterFuncNS__internal_alias")));
#else
#ifndef xmlXPathRegisterFuncNS
extern __typeof (xmlXPathRegisterFuncNS) xmlXPathRegisterFuncNS__internal_alias __attribute((visibility("hidden")));
#define xmlXPathRegisterFuncNS xmlXPathRegisterFuncNS__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathRegisterNs
extern __typeof (xmlXPathRegisterNs) xmlXPathRegisterNs __attribute((alias("xmlXPathRegisterNs__internal_alias")));
#else
#ifndef xmlXPathRegisterNs
extern __typeof (xmlXPathRegisterNs) xmlXPathRegisterNs__internal_alias __attribute((visibility("hidden")));
#define xmlXPathRegisterNs xmlXPathRegisterNs__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathRegisterVariable
extern __typeof (xmlXPathRegisterVariable) xmlXPathRegisterVariable __attribute((alias("xmlXPathRegisterVariable__internal_alias")));
#else
#ifndef xmlXPathRegisterVariable
extern __typeof (xmlXPathRegisterVariable) xmlXPathRegisterVariable__internal_alias __attribute((visibility("hidden")));
#define xmlXPathRegisterVariable xmlXPathRegisterVariable__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathRegisterVariableLookup
extern __typeof (xmlXPathRegisterVariableLookup) xmlXPathRegisterVariableLookup __attribute((alias("xmlXPathRegisterVariableLookup__internal_alias")));
#else
#ifndef xmlXPathRegisterVariableLookup
extern __typeof (xmlXPathRegisterVariableLookup) xmlXPathRegisterVariableLookup__internal_alias __attribute((visibility("hidden")));
#define xmlXPathRegisterVariableLookup xmlXPathRegisterVariableLookup__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathRegisterVariableNS
extern __typeof (xmlXPathRegisterVariableNS) xmlXPathRegisterVariableNS __attribute((alias("xmlXPathRegisterVariableNS__internal_alias")));
#else
#ifndef xmlXPathRegisterVariableNS
extern __typeof (xmlXPathRegisterVariableNS) xmlXPathRegisterVariableNS__internal_alias __attribute((visibility("hidden")));
#define xmlXPathRegisterVariableNS xmlXPathRegisterVariableNS__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathRegisteredFuncsCleanup
extern __typeof (xmlXPathRegisteredFuncsCleanup) xmlXPathRegisteredFuncsCleanup __attribute((alias("xmlXPathRegisteredFuncsCleanup__internal_alias")));
#else
#ifndef xmlXPathRegisteredFuncsCleanup
extern __typeof (xmlXPathRegisteredFuncsCleanup) xmlXPathRegisteredFuncsCleanup__internal_alias __attribute((visibility("hidden")));
#define xmlXPathRegisteredFuncsCleanup xmlXPathRegisteredFuncsCleanup__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathRegisteredNsCleanup
extern __typeof (xmlXPathRegisteredNsCleanup) xmlXPathRegisteredNsCleanup __attribute((alias("xmlXPathRegisteredNsCleanup__internal_alias")));
#else
#ifndef xmlXPathRegisteredNsCleanup
extern __typeof (xmlXPathRegisteredNsCleanup) xmlXPathRegisteredNsCleanup__internal_alias __attribute((visibility("hidden")));
#define xmlXPathRegisteredNsCleanup xmlXPathRegisteredNsCleanup__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathRegisteredVariablesCleanup
extern __typeof (xmlXPathRegisteredVariablesCleanup) xmlXPathRegisteredVariablesCleanup __attribute((alias("xmlXPathRegisteredVariablesCleanup__internal_alias")));
#else
#ifndef xmlXPathRegisteredVariablesCleanup
extern __typeof (xmlXPathRegisteredVariablesCleanup) xmlXPathRegisteredVariablesCleanup__internal_alias __attribute((visibility("hidden")));
#define xmlXPathRegisteredVariablesCleanup xmlXPathRegisteredVariablesCleanup__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathRoot
extern __typeof (xmlXPathRoot) xmlXPathRoot __attribute((alias("xmlXPathRoot__internal_alias")));
#else
#ifndef xmlXPathRoot
extern __typeof (xmlXPathRoot) xmlXPathRoot__internal_alias __attribute((visibility("hidden")));
#define xmlXPathRoot xmlXPathRoot__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathRoundFunction
extern __typeof (xmlXPathRoundFunction) xmlXPathRoundFunction __attribute((alias("xmlXPathRoundFunction__internal_alias")));
#else
#ifndef xmlXPathRoundFunction
extern __typeof (xmlXPathRoundFunction) xmlXPathRoundFunction__internal_alias __attribute((visibility("hidden")));
#define xmlXPathRoundFunction xmlXPathRoundFunction__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathStartsWithFunction
extern __typeof (xmlXPathStartsWithFunction) xmlXPathStartsWithFunction __attribute((alias("xmlXPathStartsWithFunction__internal_alias")));
#else
#ifndef xmlXPathStartsWithFunction
extern __typeof (xmlXPathStartsWithFunction) xmlXPathStartsWithFunction__internal_alias __attribute((visibility("hidden")));
#define xmlXPathStartsWithFunction xmlXPathStartsWithFunction__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathStringEvalNumber
extern __typeof (xmlXPathStringEvalNumber) xmlXPathStringEvalNumber __attribute((alias("xmlXPathStringEvalNumber__internal_alias")));
#else
#ifndef xmlXPathStringEvalNumber
extern __typeof (xmlXPathStringEvalNumber) xmlXPathStringEvalNumber__internal_alias __attribute((visibility("hidden")));
#define xmlXPathStringEvalNumber xmlXPathStringEvalNumber__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathStringFunction
extern __typeof (xmlXPathStringFunction) xmlXPathStringFunction __attribute((alias("xmlXPathStringFunction__internal_alias")));
#else
#ifndef xmlXPathStringFunction
extern __typeof (xmlXPathStringFunction) xmlXPathStringFunction__internal_alias __attribute((visibility("hidden")));
#define xmlXPathStringFunction xmlXPathStringFunction__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathStringLengthFunction
extern __typeof (xmlXPathStringLengthFunction) xmlXPathStringLengthFunction __attribute((alias("xmlXPathStringLengthFunction__internal_alias")));
#else
#ifndef xmlXPathStringLengthFunction
extern __typeof (xmlXPathStringLengthFunction) xmlXPathStringLengthFunction__internal_alias __attribute((visibility("hidden")));
#define xmlXPathStringLengthFunction xmlXPathStringLengthFunction__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathSubValues
extern __typeof (xmlXPathSubValues) xmlXPathSubValues __attribute((alias("xmlXPathSubValues__internal_alias")));
#else
#ifndef xmlXPathSubValues
extern __typeof (xmlXPathSubValues) xmlXPathSubValues__internal_alias __attribute((visibility("hidden")));
#define xmlXPathSubValues xmlXPathSubValues__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathSubstringAfterFunction
extern __typeof (xmlXPathSubstringAfterFunction) xmlXPathSubstringAfterFunction __attribute((alias("xmlXPathSubstringAfterFunction__internal_alias")));
#else
#ifndef xmlXPathSubstringAfterFunction
extern __typeof (xmlXPathSubstringAfterFunction) xmlXPathSubstringAfterFunction__internal_alias __attribute((visibility("hidden")));
#define xmlXPathSubstringAfterFunction xmlXPathSubstringAfterFunction__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathSubstringBeforeFunction
extern __typeof (xmlXPathSubstringBeforeFunction) xmlXPathSubstringBeforeFunction __attribute((alias("xmlXPathSubstringBeforeFunction__internal_alias")));
#else
#ifndef xmlXPathSubstringBeforeFunction
extern __typeof (xmlXPathSubstringBeforeFunction) xmlXPathSubstringBeforeFunction__internal_alias __attribute((visibility("hidden")));
#define xmlXPathSubstringBeforeFunction xmlXPathSubstringBeforeFunction__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathSubstringFunction
extern __typeof (xmlXPathSubstringFunction) xmlXPathSubstringFunction __attribute((alias("xmlXPathSubstringFunction__internal_alias")));
#else
#ifndef xmlXPathSubstringFunction
extern __typeof (xmlXPathSubstringFunction) xmlXPathSubstringFunction__internal_alias __attribute((visibility("hidden")));
#define xmlXPathSubstringFunction xmlXPathSubstringFunction__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathSumFunction
extern __typeof (xmlXPathSumFunction) xmlXPathSumFunction __attribute((alias("xmlXPathSumFunction__internal_alias")));
#else
#ifndef xmlXPathSumFunction
extern __typeof (xmlXPathSumFunction) xmlXPathSumFunction__internal_alias __attribute((visibility("hidden")));
#define xmlXPathSumFunction xmlXPathSumFunction__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathTrailing
extern __typeof (xmlXPathTrailing) xmlXPathTrailing __attribute((alias("xmlXPathTrailing__internal_alias")));
#else
#ifndef xmlXPathTrailing
extern __typeof (xmlXPathTrailing) xmlXPathTrailing__internal_alias __attribute((visibility("hidden")));
#define xmlXPathTrailing xmlXPathTrailing__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathTrailingSorted
extern __typeof (xmlXPathTrailingSorted) xmlXPathTrailingSorted __attribute((alias("xmlXPathTrailingSorted__internal_alias")));
#else
#ifndef xmlXPathTrailingSorted
extern __typeof (xmlXPathTrailingSorted) xmlXPathTrailingSorted__internal_alias __attribute((visibility("hidden")));
#define xmlXPathTrailingSorted xmlXPathTrailingSorted__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathTranslateFunction
extern __typeof (xmlXPathTranslateFunction) xmlXPathTranslateFunction __attribute((alias("xmlXPathTranslateFunction__internal_alias")));
#else
#ifndef xmlXPathTranslateFunction
extern __typeof (xmlXPathTranslateFunction) xmlXPathTranslateFunction__internal_alias __attribute((visibility("hidden")));
#define xmlXPathTranslateFunction xmlXPathTranslateFunction__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathTrueFunction
extern __typeof (xmlXPathTrueFunction) xmlXPathTrueFunction __attribute((alias("xmlXPathTrueFunction__internal_alias")));
#else
#ifndef xmlXPathTrueFunction
extern __typeof (xmlXPathTrueFunction) xmlXPathTrueFunction__internal_alias __attribute((visibility("hidden")));
#define xmlXPathTrueFunction xmlXPathTrueFunction__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathValueFlipSign
extern __typeof (xmlXPathValueFlipSign) xmlXPathValueFlipSign __attribute((alias("xmlXPathValueFlipSign__internal_alias")));
#else
#ifndef xmlXPathValueFlipSign
extern __typeof (xmlXPathValueFlipSign) xmlXPathValueFlipSign__internal_alias __attribute((visibility("hidden")));
#define xmlXPathValueFlipSign xmlXPathValueFlipSign__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathVariableLookup
extern __typeof (xmlXPathVariableLookup) xmlXPathVariableLookup __attribute((alias("xmlXPathVariableLookup__internal_alias")));
#else
#ifndef xmlXPathVariableLookup
extern __typeof (xmlXPathVariableLookup) xmlXPathVariableLookup__internal_alias __attribute((visibility("hidden")));
#define xmlXPathVariableLookup xmlXPathVariableLookup__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathVariableLookupNS
extern __typeof (xmlXPathVariableLookupNS) xmlXPathVariableLookupNS __attribute((alias("xmlXPathVariableLookupNS__internal_alias")));
#else
#ifndef xmlXPathVariableLookupNS
extern __typeof (xmlXPathVariableLookupNS) xmlXPathVariableLookupNS__internal_alias __attribute((visibility("hidden")));
#define xmlXPathVariableLookupNS xmlXPathVariableLookupNS__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathWrapCString
extern __typeof (xmlXPathWrapCString) xmlXPathWrapCString __attribute((alias("xmlXPathWrapCString__internal_alias")));
#else
#ifndef xmlXPathWrapCString
extern __typeof (xmlXPathWrapCString) xmlXPathWrapCString__internal_alias __attribute((visibility("hidden")));
#define xmlXPathWrapCString xmlXPathWrapCString__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathWrapExternal
extern __typeof (xmlXPathWrapExternal) xmlXPathWrapExternal __attribute((alias("xmlXPathWrapExternal__internal_alias")));
#else
#ifndef xmlXPathWrapExternal
extern __typeof (xmlXPathWrapExternal) xmlXPathWrapExternal__internal_alias __attribute((visibility("hidden")));
#define xmlXPathWrapExternal xmlXPathWrapExternal__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathWrapNodeSet
extern __typeof (xmlXPathWrapNodeSet) xmlXPathWrapNodeSet __attribute((alias("xmlXPathWrapNodeSet__internal_alias")));
#else
#ifndef xmlXPathWrapNodeSet
extern __typeof (xmlXPathWrapNodeSet) xmlXPathWrapNodeSet__internal_alias __attribute((visibility("hidden")));
#define xmlXPathWrapNodeSet xmlXPathWrapNodeSet__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPathWrapString
extern __typeof (xmlXPathWrapString) xmlXPathWrapString __attribute((alias("xmlXPathWrapString__internal_alias")));
#else
#ifndef xmlXPathWrapString
extern __typeof (xmlXPathWrapString) xmlXPathWrapString__internal_alias __attribute((visibility("hidden")));
#define xmlXPathWrapString xmlXPathWrapString__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPATH_ENABLED)
#ifdef bottom_xpath
#undef xmlXPatherror
extern __typeof (xmlXPatherror) xmlXPatherror __attribute((alias("xmlXPatherror__internal_alias")));
#else
#ifndef xmlXPatherror
extern __typeof (xmlXPatherror) xmlXPatherror__internal_alias __attribute((visibility("hidden")));
#define xmlXPatherror xmlXPatherror__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPTR_ENABLED)
#ifdef bottom_xpointer
#undef xmlXPtrBuildNodeList
extern __typeof (xmlXPtrBuildNodeList) xmlXPtrBuildNodeList __attribute((alias("xmlXPtrBuildNodeList__internal_alias")));
#else
#ifndef xmlXPtrBuildNodeList
extern __typeof (xmlXPtrBuildNodeList) xmlXPtrBuildNodeList__internal_alias __attribute((visibility("hidden")));
#define xmlXPtrBuildNodeList xmlXPtrBuildNodeList__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPTR_ENABLED)
#ifdef bottom_xpointer
#undef xmlXPtrEval
extern __typeof (xmlXPtrEval) xmlXPtrEval __attribute((alias("xmlXPtrEval__internal_alias")));
#else
#ifndef xmlXPtrEval
extern __typeof (xmlXPtrEval) xmlXPtrEval__internal_alias __attribute((visibility("hidden")));
#define xmlXPtrEval xmlXPtrEval__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPTR_ENABLED)
#ifdef bottom_xpointer
#undef xmlXPtrEvalRangePredicate
extern __typeof (xmlXPtrEvalRangePredicate) xmlXPtrEvalRangePredicate __attribute((alias("xmlXPtrEvalRangePredicate__internal_alias")));
#else
#ifndef xmlXPtrEvalRangePredicate
extern __typeof (xmlXPtrEvalRangePredicate) xmlXPtrEvalRangePredicate__internal_alias __attribute((visibility("hidden")));
#define xmlXPtrEvalRangePredicate xmlXPtrEvalRangePredicate__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPTR_ENABLED)
#ifdef bottom_xpointer
#undef xmlXPtrFreeLocationSet
extern __typeof (xmlXPtrFreeLocationSet) xmlXPtrFreeLocationSet __attribute((alias("xmlXPtrFreeLocationSet__internal_alias")));
#else
#ifndef xmlXPtrFreeLocationSet
extern __typeof (xmlXPtrFreeLocationSet) xmlXPtrFreeLocationSet__internal_alias __attribute((visibility("hidden")));
#define xmlXPtrFreeLocationSet xmlXPtrFreeLocationSet__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPTR_ENABLED)
#ifdef bottom_xpointer
#undef xmlXPtrLocationSetAdd
extern __typeof (xmlXPtrLocationSetAdd) xmlXPtrLocationSetAdd __attribute((alias("xmlXPtrLocationSetAdd__internal_alias")));
#else
#ifndef xmlXPtrLocationSetAdd
extern __typeof (xmlXPtrLocationSetAdd) xmlXPtrLocationSetAdd__internal_alias __attribute((visibility("hidden")));
#define xmlXPtrLocationSetAdd xmlXPtrLocationSetAdd__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPTR_ENABLED)
#ifdef bottom_xpointer
#undef xmlXPtrLocationSetCreate
extern __typeof (xmlXPtrLocationSetCreate) xmlXPtrLocationSetCreate __attribute((alias("xmlXPtrLocationSetCreate__internal_alias")));
#else
#ifndef xmlXPtrLocationSetCreate
extern __typeof (xmlXPtrLocationSetCreate) xmlXPtrLocationSetCreate__internal_alias __attribute((visibility("hidden")));
#define xmlXPtrLocationSetCreate xmlXPtrLocationSetCreate__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPTR_ENABLED)
#ifdef bottom_xpointer
#undef xmlXPtrLocationSetDel
extern __typeof (xmlXPtrLocationSetDel) xmlXPtrLocationSetDel __attribute((alias("xmlXPtrLocationSetDel__internal_alias")));
#else
#ifndef xmlXPtrLocationSetDel
extern __typeof (xmlXPtrLocationSetDel) xmlXPtrLocationSetDel__internal_alias __attribute((visibility("hidden")));
#define xmlXPtrLocationSetDel xmlXPtrLocationSetDel__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPTR_ENABLED)
#ifdef bottom_xpointer
#undef xmlXPtrLocationSetMerge
extern __typeof (xmlXPtrLocationSetMerge) xmlXPtrLocationSetMerge __attribute((alias("xmlXPtrLocationSetMerge__internal_alias")));
#else
#ifndef xmlXPtrLocationSetMerge
extern __typeof (xmlXPtrLocationSetMerge) xmlXPtrLocationSetMerge__internal_alias __attribute((visibility("hidden")));
#define xmlXPtrLocationSetMerge xmlXPtrLocationSetMerge__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPTR_ENABLED)
#ifdef bottom_xpointer
#undef xmlXPtrLocationSetRemove
extern __typeof (xmlXPtrLocationSetRemove) xmlXPtrLocationSetRemove __attribute((alias("xmlXPtrLocationSetRemove__internal_alias")));
#else
#ifndef xmlXPtrLocationSetRemove
extern __typeof (xmlXPtrLocationSetRemove) xmlXPtrLocationSetRemove__internal_alias __attribute((visibility("hidden")));
#define xmlXPtrLocationSetRemove xmlXPtrLocationSetRemove__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPTR_ENABLED)
#ifdef bottom_xpointer
#undef xmlXPtrNewCollapsedRange
extern __typeof (xmlXPtrNewCollapsedRange) xmlXPtrNewCollapsedRange __attribute((alias("xmlXPtrNewCollapsedRange__internal_alias")));
#else
#ifndef xmlXPtrNewCollapsedRange
extern __typeof (xmlXPtrNewCollapsedRange) xmlXPtrNewCollapsedRange__internal_alias __attribute((visibility("hidden")));
#define xmlXPtrNewCollapsedRange xmlXPtrNewCollapsedRange__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPTR_ENABLED)
#ifdef bottom_xpointer
#undef xmlXPtrNewContext
extern __typeof (xmlXPtrNewContext) xmlXPtrNewContext __attribute((alias("xmlXPtrNewContext__internal_alias")));
#else
#ifndef xmlXPtrNewContext
extern __typeof (xmlXPtrNewContext) xmlXPtrNewContext__internal_alias __attribute((visibility("hidden")));
#define xmlXPtrNewContext xmlXPtrNewContext__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPTR_ENABLED)
#ifdef bottom_xpointer
#undef xmlXPtrNewLocationSetNodeSet
extern __typeof (xmlXPtrNewLocationSetNodeSet) xmlXPtrNewLocationSetNodeSet __attribute((alias("xmlXPtrNewLocationSetNodeSet__internal_alias")));
#else
#ifndef xmlXPtrNewLocationSetNodeSet
extern __typeof (xmlXPtrNewLocationSetNodeSet) xmlXPtrNewLocationSetNodeSet__internal_alias __attribute((visibility("hidden")));
#define xmlXPtrNewLocationSetNodeSet xmlXPtrNewLocationSetNodeSet__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPTR_ENABLED)
#ifdef bottom_xpointer
#undef xmlXPtrNewLocationSetNodes
extern __typeof (xmlXPtrNewLocationSetNodes) xmlXPtrNewLocationSetNodes __attribute((alias("xmlXPtrNewLocationSetNodes__internal_alias")));
#else
#ifndef xmlXPtrNewLocationSetNodes
extern __typeof (xmlXPtrNewLocationSetNodes) xmlXPtrNewLocationSetNodes__internal_alias __attribute((visibility("hidden")));
#define xmlXPtrNewLocationSetNodes xmlXPtrNewLocationSetNodes__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPTR_ENABLED)
#ifdef bottom_xpointer
#undef xmlXPtrNewRange
extern __typeof (xmlXPtrNewRange) xmlXPtrNewRange __attribute((alias("xmlXPtrNewRange__internal_alias")));
#else
#ifndef xmlXPtrNewRange
extern __typeof (xmlXPtrNewRange) xmlXPtrNewRange__internal_alias __attribute((visibility("hidden")));
#define xmlXPtrNewRange xmlXPtrNewRange__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPTR_ENABLED)
#ifdef bottom_xpointer
#undef xmlXPtrNewRangeNodeObject
extern __typeof (xmlXPtrNewRangeNodeObject) xmlXPtrNewRangeNodeObject __attribute((alias("xmlXPtrNewRangeNodeObject__internal_alias")));
#else
#ifndef xmlXPtrNewRangeNodeObject
extern __typeof (xmlXPtrNewRangeNodeObject) xmlXPtrNewRangeNodeObject__internal_alias __attribute((visibility("hidden")));
#define xmlXPtrNewRangeNodeObject xmlXPtrNewRangeNodeObject__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPTR_ENABLED)
#ifdef bottom_xpointer
#undef xmlXPtrNewRangeNodePoint
extern __typeof (xmlXPtrNewRangeNodePoint) xmlXPtrNewRangeNodePoint __attribute((alias("xmlXPtrNewRangeNodePoint__internal_alias")));
#else
#ifndef xmlXPtrNewRangeNodePoint
extern __typeof (xmlXPtrNewRangeNodePoint) xmlXPtrNewRangeNodePoint__internal_alias __attribute((visibility("hidden")));
#define xmlXPtrNewRangeNodePoint xmlXPtrNewRangeNodePoint__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPTR_ENABLED)
#ifdef bottom_xpointer
#undef xmlXPtrNewRangeNodes
extern __typeof (xmlXPtrNewRangeNodes) xmlXPtrNewRangeNodes __attribute((alias("xmlXPtrNewRangeNodes__internal_alias")));
#else
#ifndef xmlXPtrNewRangeNodes
extern __typeof (xmlXPtrNewRangeNodes) xmlXPtrNewRangeNodes__internal_alias __attribute((visibility("hidden")));
#define xmlXPtrNewRangeNodes xmlXPtrNewRangeNodes__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPTR_ENABLED)
#ifdef bottom_xpointer
#undef xmlXPtrNewRangePointNode
extern __typeof (xmlXPtrNewRangePointNode) xmlXPtrNewRangePointNode __attribute((alias("xmlXPtrNewRangePointNode__internal_alias")));
#else
#ifndef xmlXPtrNewRangePointNode
extern __typeof (xmlXPtrNewRangePointNode) xmlXPtrNewRangePointNode__internal_alias __attribute((visibility("hidden")));
#define xmlXPtrNewRangePointNode xmlXPtrNewRangePointNode__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPTR_ENABLED)
#ifdef bottom_xpointer
#undef xmlXPtrNewRangePoints
extern __typeof (xmlXPtrNewRangePoints) xmlXPtrNewRangePoints __attribute((alias("xmlXPtrNewRangePoints__internal_alias")));
#else
#ifndef xmlXPtrNewRangePoints
extern __typeof (xmlXPtrNewRangePoints) xmlXPtrNewRangePoints__internal_alias __attribute((visibility("hidden")));
#define xmlXPtrNewRangePoints xmlXPtrNewRangePoints__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPTR_ENABLED)
#ifdef bottom_xpointer
#undef xmlXPtrRangeToFunction
extern __typeof (xmlXPtrRangeToFunction) xmlXPtrRangeToFunction __attribute((alias("xmlXPtrRangeToFunction__internal_alias")));
#else
#ifndef xmlXPtrRangeToFunction
extern __typeof (xmlXPtrRangeToFunction) xmlXPtrRangeToFunction__internal_alias __attribute((visibility("hidden")));
#define xmlXPtrRangeToFunction xmlXPtrRangeToFunction__internal_alias
#endif
#endif
#endif

#if defined(LIBXML_XPTR_ENABLED)
#ifdef bottom_xpointer
#undef xmlXPtrWrapLocationSet
extern __typeof (xmlXPtrWrapLocationSet) xmlXPtrWrapLocationSet __attribute((alias("xmlXPtrWrapLocationSet__internal_alias")));
#else
#ifndef xmlXPtrWrapLocationSet
extern __typeof (xmlXPtrWrapLocationSet) xmlXPtrWrapLocationSet__internal_alias __attribute((visibility("hidden")));
#define xmlXPtrWrapLocationSet xmlXPtrWrapLocationSet__internal_alias
#endif
#endif
#endif


#endif
#endif
#endif
#endif
#endif

