diff --git a/Expat/Makefile b/Expat/Makefile
new file mode 100644
index 0000000..c454454
--- /dev/null
+++ b/Expat/Makefile
@@ -0,0 +1,856 @@
+# This Makefile is for the XML::Parser::Expat extension to perl.
+#
+# It was generated automatically by MakeMaker version
+# 7.62 (Revision: 76200) from the contents of
+# Makefile.PL. Don't edit this file, edit Makefile.PL instead.
+#
+#       ANY CHANGES MADE HERE WILL BE LOST!
+#
+#   MakeMaker ARGV: ()
+#
+
+#   MakeMaker Parameters:
+
+#     ABSTRACT => q[Lowlevel access to James Clark's expat XML parser]
+#     AUTHOR => [q[Matt Sergeant (matt@sergeant.org)]]
+#     BUILD_REQUIRES => {  }
+#     C => [q[Expat.c]]
+#     CONFIGURE_REQUIRES => {  }
+#     LIBS => q[-L-lexpat -lexpat]
+#     NAME => q[XML::Parser::Expat]
+#     PREREQ_PM => {  }
+#     TEST_REQUIRES => {  }
+#     VERSION_FROM => q[Expat.pm]
+#     XSPROTOARG => q[-noprototypes]
+
+# --- MakeMaker post_initialize section:
+
+
+# --- MakeMaker const_config section:
+
+# These definitions are from config.sh (via /usr/lib/x86_64-linux-gnu/perl-base/Config.pm).
+# They may have been overridden via Makefile.PL or on the command line.
+AR = ar
+CC = x86_64-linux-gnu-gcc
+CCCDLFLAGS = -fPIC
+CCDLFLAGS = -Wl,-E
+DLEXT = so
+DLSRC = dl_dlopen.xs
+EXE_EXT = 
+FULL_AR = /usr/bin/ar
+LD = x86_64-linux-gnu-gcc
+LDDLFLAGS = -shared -L/usr/local/lib -fstack-protector-strong
+LDFLAGS =  -fstack-protector-strong -L/usr/local/lib
+LIBC = libc-2.33.so
+LIB_EXT = .a
+OBJ_EXT = .o
+OSNAME = linux
+OSVERS = 4.19.0
+RANLIB = :
+SITELIBEXP = /usr/local/share/perl/5.34.0
+SITEARCHEXP = /usr/local/lib/x86_64-linux-gnu/perl/5.34.0
+SO = so
+VENDORARCHEXP = /usr/lib/x86_64-linux-gnu/perl5/5.34
+VENDORLIBEXP = /usr/share/perl5
+
+
+# --- MakeMaker constants section:
+AR_STATIC_ARGS = cr
+DIRFILESEP = /
+DFSEP = $(DIRFILESEP)
+NAME = XML::Parser::Expat
+NAME_SYM = XML_Parser_Expat
+VERSION = 2.46
+VERSION_MACRO = VERSION
+VERSION_SYM = 2_46
+DEFINE_VERSION = -D$(VERSION_MACRO)=\"$(VERSION)\"
+XS_VERSION = 2.46
+XS_VERSION_MACRO = XS_VERSION
+XS_DEFINE_VERSION = -D$(XS_VERSION_MACRO)=\"$(XS_VERSION)\"
+INST_ARCHLIB = ../blib/arch
+INST_SCRIPT = ../blib/script
+INST_BIN = ../blib/bin
+INST_LIB = ../blib/lib
+INST_MAN1DIR = ../blib/man1
+INST_MAN3DIR = ../blib/man3
+MAN1EXT = 1p
+MAN3EXT = 3pm
+MAN1SECTION = 1
+MAN3SECTION = 3
+INSTALLDIRS = site
+DESTDIR = 
+PREFIX = $(SITEPREFIX)
+PERLPREFIX = /usr
+SITEPREFIX = /usr/local
+VENDORPREFIX = /usr
+INSTALLPRIVLIB = /usr/share/perl/5.34
+DESTINSTALLPRIVLIB = $(DESTDIR)$(INSTALLPRIVLIB)
+INSTALLSITELIB = /usr/local/share/perl/5.34.0
+DESTINSTALLSITELIB = $(DESTDIR)$(INSTALLSITELIB)
+INSTALLVENDORLIB = /usr/share/perl5
+DESTINSTALLVENDORLIB = $(DESTDIR)$(INSTALLVENDORLIB)
+INSTALLARCHLIB = /usr/lib/x86_64-linux-gnu/perl/5.34
+DESTINSTALLARCHLIB = $(DESTDIR)$(INSTALLARCHLIB)
+INSTALLSITEARCH = /usr/local/lib/x86_64-linux-gnu/perl/5.34.0
+DESTINSTALLSITEARCH = $(DESTDIR)$(INSTALLSITEARCH)
+INSTALLVENDORARCH = /usr/lib/x86_64-linux-gnu/perl5/5.34
+DESTINSTALLVENDORARCH = $(DESTDIR)$(INSTALLVENDORARCH)
+INSTALLBIN = /usr/bin
+DESTINSTALLBIN = $(DESTDIR)$(INSTALLBIN)
+INSTALLSITEBIN = /usr/local/bin
+DESTINSTALLSITEBIN = $(DESTDIR)$(INSTALLSITEBIN)
+INSTALLVENDORBIN = /usr/bin
+DESTINSTALLVENDORBIN = $(DESTDIR)$(INSTALLVENDORBIN)
+INSTALLSCRIPT = /usr/bin
+DESTINSTALLSCRIPT = $(DESTDIR)$(INSTALLSCRIPT)
+INSTALLSITESCRIPT = /usr/local/bin
+DESTINSTALLSITESCRIPT = $(DESTDIR)$(INSTALLSITESCRIPT)
+INSTALLVENDORSCRIPT = /usr/bin
+DESTINSTALLVENDORSCRIPT = $(DESTDIR)$(INSTALLVENDORSCRIPT)
+INSTALLMAN1DIR = /usr/share/man/man1
+DESTINSTALLMAN1DIR = $(DESTDIR)$(INSTALLMAN1DIR)
+INSTALLSITEMAN1DIR = /usr/local/man/man1
+DESTINSTALLSITEMAN1DIR = $(DESTDIR)$(INSTALLSITEMAN1DIR)
+INSTALLVENDORMAN1DIR = /usr/share/man/man1
+DESTINSTALLVENDORMAN1DIR = $(DESTDIR)$(INSTALLVENDORMAN1DIR)
+INSTALLMAN3DIR = /usr/share/man/man3
+DESTINSTALLMAN3DIR = $(DESTDIR)$(INSTALLMAN3DIR)
+INSTALLSITEMAN3DIR = /usr/local/man/man3
+DESTINSTALLSITEMAN3DIR = $(DESTDIR)$(INSTALLSITEMAN3DIR)
+INSTALLVENDORMAN3DIR = /usr/share/man/man3
+DESTINSTALLVENDORMAN3DIR = $(DESTDIR)$(INSTALLVENDORMAN3DIR)
+PERL_LIB = /usr/share/perl/5.34
+PERL_ARCHLIB = /usr/lib/x86_64-linux-gnu/perl/5.34
+PERL_ARCHLIBDEP = /usr/lib/x86_64-linux-gnu/perl/5.34
+LIBPERL_A = libperl.a
+FIRST_MAKEFILE = Makefile
+MAKEFILE_OLD = Makefile.old
+MAKE_APERL_FILE = Makefile.aperl
+PERLMAINCC = $(CC)
+PERL_INC = /usr/lib/x86_64-linux-gnu/perl/5.34/CORE
+PERL_INCDEP = /usr/lib/x86_64-linux-gnu/perl/5.34/CORE
+PERL = "/usr/bin/perl"
+FULLPERL = "/usr/bin/perl"
+ABSPERL = $(PERL)
+PERLRUN = $(PERL)
+FULLPERLRUN = $(FULLPERL)
+ABSPERLRUN = $(ABSPERL)
+PERLRUNINST = $(PERLRUN) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)"
+FULLPERLRUNINST = $(FULLPERLRUN) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)"
+ABSPERLRUNINST = $(ABSPERLRUN) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)"
+PERL_CORE = 0
+PERM_DIR = 755
+PERM_RW = 644
+PERM_RWX = 755
+
+MAKEMAKER   = /usr/share/perl/5.34/ExtUtils/MakeMaker.pm
+MM_VERSION  = 7.62
+MM_REVISION = 76200
+
+# FULLEXT = Pathname for extension directory (eg Foo/Bar/Oracle).
+# BASEEXT = Basename part of FULLEXT. May be just equal FULLEXT. (eg Oracle)
+# PARENT_NAME = NAME without BASEEXT and no trailing :: (eg Foo::Bar)
+# DLBASE  = Basename part of dynamic library. May be just equal BASEEXT.
+MAKE = make
+FULLEXT = XML/Parser/Expat
+BASEEXT = Expat
+PARENT_NAME = XML::Parser
+DLBASE = $(BASEEXT)
+VERSION_FROM = Expat.pm
+OBJECT = $(BASEEXT)$(OBJ_EXT)
+LDFROM = $(OBJECT)
+LINKTYPE = dynamic
+BOOTDEP = 
+
+# Handy lists of source code files:
+XS_FILES = Expat.xs
+C_FILES  = Expat.c
+O_FILES  = Expat.o
+H_FILES  = encoding.h
+MAN1PODS = 
+MAN3PODS = Expat.pm
+
+# Where is the Config information that we are using/depend on
+CONFIGDEP = $(PERL_ARCHLIBDEP)$(DFSEP)Config.pm $(PERL_INCDEP)$(DFSEP)config.h
+
+# Where to build things
+INST_LIBDIR      = $(INST_LIB)/XML/Parser
+INST_ARCHLIBDIR  = $(INST_ARCHLIB)/XML/Parser
+
+INST_AUTODIR     = $(INST_LIB)/auto/$(FULLEXT)
+INST_ARCHAUTODIR = $(INST_ARCHLIB)/auto/$(FULLEXT)
+
+INST_STATIC      = $(INST_ARCHAUTODIR)/$(BASEEXT)$(LIB_EXT)
+INST_DYNAMIC     = $(INST_ARCHAUTODIR)/$(DLBASE).$(DLEXT)
+INST_BOOT        = $(INST_ARCHAUTODIR)/$(BASEEXT).bs
+
+# Extra linker info
+EXPORT_LIST        = 
+PERL_ARCHIVE       = 
+PERL_ARCHIVEDEP    = 
+PERL_ARCHIVE_AFTER = 
+
+
+TO_INST_PM = Expat.pm
+
+
+# --- MakeMaker platform_constants section:
+MM_Unix_VERSION = 7.62
+PERL_MALLOC_DEF = -DPERL_EXTMALLOC_DEF -Dmalloc=Perl_malloc -Dfree=Perl_mfree -Drealloc=Perl_realloc -Dcalloc=Perl_calloc
+
+
+# --- MakeMaker tool_autosplit section:
+# Usage: $(AUTOSPLITFILE) FileToSplit AutoDirToSplitInto
+AUTOSPLITFILE = $(ABSPERLRUN)  -e 'use AutoSplit;  autosplit($$$$ARGV[0], $$$$ARGV[1], 0, 1, 1)' --
+
+
+
+# --- MakeMaker tool_xsubpp section:
+
+XSUBPPDIR = /usr/share/perl/5.34.0/ExtUtils
+XSUBPP = "$(XSUBPPDIR)$(DFSEP)xsubpp"
+XSUBPPRUN = $(PERLRUN) $(XSUBPP)
+XSPROTOARG = -noprototypes
+XSUBPPDEPS = /usr/share/perl/5.34/ExtUtils/typemap typemap /usr/share/perl/5.34.0/ExtUtils$(DFSEP)xsubpp
+XSUBPPARGS = -typemap '/usr/share/perl/5.34/ExtUtils/typemap' -typemap '/build/tmp12_00baq/libxml-parser-perl/Expat/typemap'
+XSUBPP_EXTRA_ARGS =
+
+
+# --- MakeMaker tools_other section:
+SHELL = /bin/sh
+CHMOD = chmod
+CP = cp
+MV = mv
+NOOP = $(TRUE)
+NOECHO = @
+RM_F = rm -f
+RM_RF = rm -rf
+TEST_F = test -f
+TOUCH = touch
+UMASK_NULL = umask 0
+DEV_NULL = > /dev/null 2>&1
+MKPATH = $(ABSPERLRUN) -MExtUtils::Command -e 'mkpath' --
+EQUALIZE_TIMESTAMP = $(ABSPERLRUN) -MExtUtils::Command -e 'eqtime' --
+FALSE = false
+TRUE = true
+ECHO = echo
+ECHO_N = echo -n
+UNINST = 0
+VERBINST = 0
+MOD_INSTALL = $(ABSPERLRUN) -MExtUtils::Install -e 'install([ from_to => {@ARGV}, verbose => '\''$(VERBINST)'\'', uninstall_shadows => '\''$(UNINST)'\'', dir_mode => '\''$(PERM_DIR)'\'' ]);' --
+DOC_INSTALL = $(ABSPERLRUN) -MExtUtils::Command::MM -e 'perllocal_install' --
+UNINSTALL = $(ABSPERLRUN) -MExtUtils::Command::MM -e 'uninstall' --
+WARN_IF_OLD_PACKLIST = $(ABSPERLRUN) -MExtUtils::Command::MM -e 'warn_if_old_packlist' --
+MACROSTART = 
+MACROEND = 
+USEMAKEFILE = -f
+FIXIN = $(ABSPERLRUN) -MExtUtils::MY -e 'MY->fixin(shift)' --
+CP_NONEMPTY = $(ABSPERLRUN) -MExtUtils::Command::MM -e 'cp_nonempty' --
+
+
+# --- MakeMaker makemakerdflt section:
+makemakerdflt : all
+	$(NOECHO) $(NOOP)
+
+
+# --- MakeMaker dist section skipped.
+
+# --- MakeMaker macro section:
+
+
+# --- MakeMaker depend section:
+
+
+# --- MakeMaker cflags section:
+
+CCFLAGS = -D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fwrapv -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
+OPTIMIZE = -O2 -g
+PERLTYPE = 
+MPOLLUTE = 
+
+
+# --- MakeMaker const_loadlibs section:
+
+# XML::Parser::Expat might depend on some other libraries:
+# See ExtUtils::Liblist for details
+#
+EXTRALIBS = -lexpat
+LDLOADLIBS = -lexpat
+BSLOADLIBS = 
+
+
+# --- MakeMaker const_cccmd section:
+CCCMD = $(CC) -c $(PASTHRU_INC) $(INC) \
+	$(CCFLAGS) $(OPTIMIZE) \
+	$(PERLTYPE) $(MPOLLUTE) $(DEFINE_VERSION) \
+	$(XS_DEFINE_VERSION)
+
+# --- MakeMaker post_constants section:
+
+
+# --- MakeMaker pasthru section:
+
+PASTHRU = LIBPERL_A="$(LIBPERL_A)"\
+	LINKTYPE="$(LINKTYPE)"\
+	OPTIMIZE="$(OPTIMIZE)"\
+	LD="$(LD)"\
+	PREFIX="$(PREFIX)"\
+	PASTHRU_DEFINE='$(DEFINE) $(PASTHRU_DEFINE)'\
+	PASTHRU_INC='$(INC) $(PASTHRU_INC)'
+
+
+# --- MakeMaker special_targets section:
+.SUFFIXES : .xs .c .C .cpp .i .s .cxx .cc $(OBJ_EXT)
+
+.PHONY: all config static dynamic test linkext manifest blibdirs clean realclean disttest distdir pure_all subdirs clean_subdirs makemakerdflt manifypods realclean_subdirs subdirs_dynamic subdirs_pure_nolink subdirs_static subdirs-test_dynamic subdirs-test_static test_dynamic test_static
+
+
+
+# --- MakeMaker c_o section:
+
+.c.i:
+	x86_64-linux-gnu-gcc  -E -c $(PASTHRU_INC) $(INC) \
+	$(CCFLAGS) $(OPTIMIZE) \
+	$(PERLTYPE) $(MPOLLUTE) $(DEFINE_VERSION) \
+	$(XS_DEFINE_VERSION) $(CCCDLFLAGS) "-I$(PERL_INC)" $(PASTHRU_DEFINE) $(DEFINE) $*.c > $*.i
+
+.c.s :
+	$(CCCMD) -S $(CCCDLFLAGS) "-I$(PERL_INC)" $(PASTHRU_DEFINE) $(DEFINE) $*.c 
+
+.c$(OBJ_EXT) :
+	$(CCCMD) $(CCCDLFLAGS) "-I$(PERL_INC)" $(PASTHRU_DEFINE) $(DEFINE) $*.c
+
+.cpp$(OBJ_EXT) :
+	$(CCCMD) $(CCCDLFLAGS) "-I$(PERL_INC)" $(PASTHRU_DEFINE) $(DEFINE) $*.cpp
+
+.cxx$(OBJ_EXT) :
+	$(CCCMD) $(CCCDLFLAGS) "-I$(PERL_INC)" $(PASTHRU_DEFINE) $(DEFINE) $*.cxx
+
+.cc$(OBJ_EXT) :
+	$(CCCMD) $(CCCDLFLAGS) "-I$(PERL_INC)" $(PASTHRU_DEFINE) $(DEFINE) $*.cc
+
+.C$(OBJ_EXT) :
+	$(CCCMD) $(CCCDLFLAGS) "-I$(PERL_INC)" $(PASTHRU_DEFINE) $(DEFINE) $*.C
+
+
+# --- MakeMaker xs_c section:
+
+.xs.c:
+	$(XSUBPPRUN) $(XSPROTOARG) $(XSUBPPARGS) $(XSUBPP_EXTRA_ARGS) $*.xs > $*.xsc
+	$(MV) $*.xsc $*.c
+
+
+# --- MakeMaker xs_o section:
+.xs$(OBJ_EXT) :
+	$(XSUBPPRUN) $(XSPROTOARG) $(XSUBPPARGS) $*.xs > $*.xsc
+	$(MV) $*.xsc $*.c
+	$(CCCMD) $(CCCDLFLAGS) "-I$(PERL_INC)" $(PASTHRU_DEFINE) $(DEFINE) $*.c 
+
+
+# --- MakeMaker top_targets section:
+all :: pure_all manifypods
+	$(NOECHO) $(NOOP)
+
+pure_all :: config pm_to_blib subdirs linkext
+	$(NOECHO) $(NOOP)
+
+subdirs :: $(MYEXTLIB)
+	$(NOECHO) $(NOOP)
+
+config :: $(FIRST_MAKEFILE) blibdirs
+	$(NOECHO) $(NOOP)
+
+$(O_FILES) : $(H_FILES)
+
+help :
+	perldoc ExtUtils::MakeMaker
+
+
+# --- MakeMaker blibdirs section:
+blibdirs : $(INST_LIBDIR)$(DFSEP).exists $(INST_ARCHLIB)$(DFSEP).exists $(INST_AUTODIR)$(DFSEP).exists $(INST_ARCHAUTODIR)$(DFSEP).exists $(INST_BIN)$(DFSEP).exists $(INST_SCRIPT)$(DFSEP).exists $(INST_MAN1DIR)$(DFSEP).exists $(INST_MAN3DIR)$(DFSEP).exists
+	$(NOECHO) $(NOOP)
+
+# Backwards compat with 6.18 through 6.25
+blibdirs.ts : blibdirs
+	$(NOECHO) $(NOOP)
+
+$(INST_LIBDIR)$(DFSEP).exists :: Makefile.PL
+	$(NOECHO) $(MKPATH) $(INST_LIBDIR)
+	$(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_LIBDIR)
+	$(NOECHO) $(TOUCH) $(INST_LIBDIR)$(DFSEP).exists
+
+$(INST_ARCHLIB)$(DFSEP).exists :: Makefile.PL
+	$(NOECHO) $(MKPATH) $(INST_ARCHLIB)
+	$(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_ARCHLIB)
+	$(NOECHO) $(TOUCH) $(INST_ARCHLIB)$(DFSEP).exists
+
+$(INST_AUTODIR)$(DFSEP).exists :: Makefile.PL
+	$(NOECHO) $(MKPATH) $(INST_AUTODIR)
+	$(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_AUTODIR)
+	$(NOECHO) $(TOUCH) $(INST_AUTODIR)$(DFSEP).exists
+
+$(INST_ARCHAUTODIR)$(DFSEP).exists :: Makefile.PL
+	$(NOECHO) $(MKPATH) $(INST_ARCHAUTODIR)
+	$(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_ARCHAUTODIR)
+	$(NOECHO) $(TOUCH) $(INST_ARCHAUTODIR)$(DFSEP).exists
+
+$(INST_BIN)$(DFSEP).exists :: Makefile.PL
+	$(NOECHO) $(MKPATH) $(INST_BIN)
+	$(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_BIN)
+	$(NOECHO) $(TOUCH) $(INST_BIN)$(DFSEP).exists
+
+$(INST_SCRIPT)$(DFSEP).exists :: Makefile.PL
+	$(NOECHO) $(MKPATH) $(INST_SCRIPT)
+	$(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_SCRIPT)
+	$(NOECHO) $(TOUCH) $(INST_SCRIPT)$(DFSEP).exists
+
+$(INST_MAN1DIR)$(DFSEP).exists :: Makefile.PL
+	$(NOECHO) $(MKPATH) $(INST_MAN1DIR)
+	$(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_MAN1DIR)
+	$(NOECHO) $(TOUCH) $(INST_MAN1DIR)$(DFSEP).exists
+
+$(INST_MAN3DIR)$(DFSEP).exists :: Makefile.PL
+	$(NOECHO) $(MKPATH) $(INST_MAN3DIR)
+	$(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_MAN3DIR)
+	$(NOECHO) $(TOUCH) $(INST_MAN3DIR)$(DFSEP).exists
+
+
+
+# --- MakeMaker linkext section:
+
+linkext :: dynamic
+	$(NOECHO) $(NOOP)
+
+
+# --- MakeMaker dlsyms section:
+
+
+# --- MakeMaker dynamic_bs section:
+BOOTSTRAP = $(BASEEXT).bs
+
+# As Mkbootstrap might not write a file (if none is required)
+# we use touch to prevent make continually trying to remake it.
+# The DynaLoader only reads a non-empty file.
+$(BASEEXT).bs : $(FIRST_MAKEFILE) $(BOOTDEP)
+	$(NOECHO) $(ECHO) "Running Mkbootstrap for $(BASEEXT) ($(BSLOADLIBS))"
+	$(NOECHO) $(PERLRUN) \
+		"-MExtUtils::Mkbootstrap" \
+		-e "Mkbootstrap('$(BASEEXT)','$(BSLOADLIBS)');"
+	$(NOECHO) $(TOUCH) "$(BASEEXT).bs"
+	$(CHMOD) $(PERM_RW) "$(BASEEXT).bs"
+
+$(INST_ARCHAUTODIR)/$(BASEEXT).bs : $(BASEEXT).bs $(INST_ARCHAUTODIR)$(DFSEP).exists
+	$(NOECHO) $(RM_RF) $(INST_ARCHAUTODIR)/$(BASEEXT).bs
+	- $(CP_NONEMPTY) $(BASEEXT).bs $(INST_ARCHAUTODIR)/$(BASEEXT).bs $(PERM_RW)
+
+
+# --- MakeMaker dynamic section:
+
+dynamic :: $(FIRST_MAKEFILE) config $(INST_BOOT) $(INST_DYNAMIC)
+	$(NOECHO) $(NOOP)
+
+
+# --- MakeMaker dynamic_lib section:
+# This section creates the dynamically loadable objects from relevant
+# objects and possibly $(MYEXTLIB).
+ARMAYBE = :
+OTHERLDFLAGS = 
+INST_DYNAMIC_DEP = 
+INST_DYNAMIC_FIX = 
+
+$(INST_DYNAMIC) : $(OBJECT) $(MYEXTLIB) $(INST_ARCHAUTODIR)$(DFSEP).exists $(EXPORT_LIST) $(PERL_ARCHIVEDEP) $(PERL_ARCHIVE_AFTER) $(INST_DYNAMIC_DEP) 
+	$(RM_F) $@
+	$(LD)  $(LDDLFLAGS)  $(LDFROM) $(OTHERLDFLAGS) -o $@ $(MYEXTLIB) \
+	  $(PERL_ARCHIVE) $(LDLOADLIBS) $(PERL_ARCHIVE_AFTER) $(EXPORT_LIST) \
+	  $(INST_DYNAMIC_FIX)
+	$(CHMOD) $(PERM_RWX) $@
+
+
+# --- MakeMaker static section:
+
+## $(INST_PM) has been moved to the all: target.
+## It remains here for awhile to allow for old usage: "make static"
+static :: $(FIRST_MAKEFILE) $(INST_STATIC)
+	$(NOECHO) $(NOOP)
+
+
+# --- MakeMaker static_lib section:
+$(INST_STATIC): $(OBJECT) $(MYEXTLIB) $(INST_ARCHAUTODIR)$(DFSEP).exists
+	$(RM_F) "$@"
+	$(FULL_AR) $(AR_STATIC_ARGS) "$@" $(OBJECT)
+	$(RANLIB) "$@"
+	$(CHMOD) $(PERM_RWX) $@
+	$(NOECHO) $(ECHO) "$(EXTRALIBS)" > $(INST_ARCHAUTODIR)$(DFSEP)extralibs.ld
+
+
+# --- MakeMaker manifypods section:
+
+POD2MAN_EXE = $(PERLRUN) "-MExtUtils::Command::MM" -e pod2man "--"
+POD2MAN = $(POD2MAN_EXE)
+
+
+manifypods : pure_all config  \
+	Expat.pm
+	$(NOECHO) $(POD2MAN) --section=$(MAN3EXT) --perm_rw=$(PERM_RW) -u \
+	  Expat.pm $(INST_MAN3DIR)/XML::Parser::Expat.$(MAN3EXT) 
+
+
+
+
+# --- MakeMaker processPL section:
+
+
+# --- MakeMaker installbin section:
+
+
+# --- MakeMaker subdirs section:
+
+# none
+
+# --- MakeMaker clean_subdirs section:
+clean_subdirs :
+	$(NOECHO) $(NOOP)
+
+
+# --- MakeMaker clean section:
+
+# Delete temporary files but do not touch installed files. We don't delete
+# the Makefile here so a later make realclean still has a makefile to use.
+
+clean :: clean_subdirs
+	- $(RM_F) \
+	  $(BASEEXT).bso $(BASEEXT).def \
+	  $(BASEEXT).exp $(BASEEXT).x \
+	  $(BOOTSTRAP) $(INST_ARCHAUTODIR)/extralibs.all \
+	  $(INST_ARCHAUTODIR)/extralibs.ld $(MAKE_APERL_FILE) \
+	  *$(LIB_EXT) *$(OBJ_EXT) \
+	  *perl.core Expat.base \
+	  Expat.bs Expat.bso \
+	  Expat.c Expat.def \
+	  Expat.exp Expat.o \
+	  Expat_def.old MYMETA.json \
+	  MYMETA.yml blibdirs.ts \
+	  core core.*perl.*.? \
+	  core.[0-9] core.[0-9][0-9] \
+	  core.[0-9][0-9][0-9] core.[0-9][0-9][0-9][0-9] \
+	  core.[0-9][0-9][0-9][0-9][0-9] lib$(BASEEXT).def \
+	  mon.out perl \
+	  perl$(EXE_EXT) perl.exe \
+	  perlmain.c pm_to_blib \
+	  pm_to_blib.ts so_locations \
+	  tmon.out 
+	- $(RM_RF) \
+	  blib 
+	  $(NOECHO) $(RM_F) $(MAKEFILE_OLD)
+	- $(MV) $(FIRST_MAKEFILE) $(MAKEFILE_OLD) $(DEV_NULL)
+
+
+# --- MakeMaker realclean_subdirs section:
+# so clean is forced to complete before realclean_subdirs runs
+realclean_subdirs : clean
+	$(NOECHO) $(NOOP)
+
+
+# --- MakeMaker realclean section:
+# Delete temporary files (via clean) and also delete dist files
+realclean purge :: realclean_subdirs
+	- $(RM_F) \
+	  $(FIRST_MAKEFILE) $(MAKEFILE_OLD) \
+	  $(OBJECT) 
+	- $(RM_RF) \
+	  $(DISTVNAME) 
+
+
+# --- MakeMaker metafile section:
+metafile : create_distdir
+	$(NOECHO) $(ECHO) Generating META.yml
+	$(NOECHO) $(ECHO) '---' > META_new.yml
+	$(NOECHO) $(ECHO) 'abstract: "Lowlevel access to James Clark'\''s expat XML parser"' >> META_new.yml
+	$(NOECHO) $(ECHO) 'author:' >> META_new.yml
+	$(NOECHO) $(ECHO) '  - '\''Matt Sergeant (matt@sergeant.org)'\''' >> META_new.yml
+	$(NOECHO) $(ECHO) 'build_requires:' >> META_new.yml
+	$(NOECHO) $(ECHO) '  ExtUtils::MakeMaker: '\''0'\''' >> META_new.yml
+	$(NOECHO) $(ECHO) 'configure_requires:' >> META_new.yml
+	$(NOECHO) $(ECHO) '  ExtUtils::MakeMaker: '\''0'\''' >> META_new.yml
+	$(NOECHO) $(ECHO) 'dynamic_config: 1' >> META_new.yml
+	$(NOECHO) $(ECHO) 'generated_by: '\''ExtUtils::MakeMaker version 7.62, CPAN::Meta::Converter version 2.150010'\''' >> META_new.yml
+	$(NOECHO) $(ECHO) 'license: unknown' >> META_new.yml
+	$(NOECHO) $(ECHO) 'meta-spec:' >> META_new.yml
+	$(NOECHO) $(ECHO) '  url: http://module-build.sourceforge.net/META-spec-v1.4.html' >> META_new.yml
+	$(NOECHO) $(ECHO) '  version: '\''1.4'\''' >> META_new.yml
+	$(NOECHO) $(ECHO) 'name: XML-Parser-Expat' >> META_new.yml
+	$(NOECHO) $(ECHO) 'no_index:' >> META_new.yml
+	$(NOECHO) $(ECHO) '  directory:' >> META_new.yml
+	$(NOECHO) $(ECHO) '    - t' >> META_new.yml
+	$(NOECHO) $(ECHO) '    - inc' >> META_new.yml
+	$(NOECHO) $(ECHO) 'version: '\''2.46'\''' >> META_new.yml
+	$(NOECHO) $(ECHO) 'x_serialization_backend: '\''CPAN::Meta::YAML version 0.018'\''' >> META_new.yml
+	-$(NOECHO) $(MV) META_new.yml $(DISTVNAME)/META.yml
+	$(NOECHO) $(ECHO) Generating META.json
+	$(NOECHO) $(ECHO) '{' > META_new.json
+	$(NOECHO) $(ECHO) '   "abstract" : "Lowlevel access to James Clark'\''s expat XML parser",' >> META_new.json
+	$(NOECHO) $(ECHO) '   "author" : [' >> META_new.json
+	$(NOECHO) $(ECHO) '      "Matt Sergeant (matt@sergeant.org)"' >> META_new.json
+	$(NOECHO) $(ECHO) '   ],' >> META_new.json
+	$(NOECHO) $(ECHO) '   "dynamic_config" : 1,' >> META_new.json
+	$(NOECHO) $(ECHO) '   "generated_by" : "ExtUtils::MakeMaker version 7.62, CPAN::Meta::Converter version 2.150010",' >> META_new.json
+	$(NOECHO) $(ECHO) '   "license" : [' >> META_new.json
+	$(NOECHO) $(ECHO) '      "unknown"' >> META_new.json
+	$(NOECHO) $(ECHO) '   ],' >> META_new.json
+	$(NOECHO) $(ECHO) '   "meta-spec" : {' >> META_new.json
+	$(NOECHO) $(ECHO) '      "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec",' >> META_new.json
+	$(NOECHO) $(ECHO) '      "version" : 2' >> META_new.json
+	$(NOECHO) $(ECHO) '   },' >> META_new.json
+	$(NOECHO) $(ECHO) '   "name" : "XML-Parser-Expat",' >> META_new.json
+	$(NOECHO) $(ECHO) '   "no_index" : {' >> META_new.json
+	$(NOECHO) $(ECHO) '      "directory" : [' >> META_new.json
+	$(NOECHO) $(ECHO) '         "t",' >> META_new.json
+	$(NOECHO) $(ECHO) '         "inc"' >> META_new.json
+	$(NOECHO) $(ECHO) '      ]' >> META_new.json
+	$(NOECHO) $(ECHO) '   },' >> META_new.json
+	$(NOECHO) $(ECHO) '   "prereqs" : {' >> META_new.json
+	$(NOECHO) $(ECHO) '      "build" : {' >> META_new.json
+	$(NOECHO) $(ECHO) '         "requires" : {' >> META_new.json
+	$(NOECHO) $(ECHO) '            "ExtUtils::MakeMaker" : "0"' >> META_new.json
+	$(NOECHO) $(ECHO) '         }' >> META_new.json
+	$(NOECHO) $(ECHO) '      },' >> META_new.json
+	$(NOECHO) $(ECHO) '      "configure" : {' >> META_new.json
+	$(NOECHO) $(ECHO) '         "requires" : {' >> META_new.json
+	$(NOECHO) $(ECHO) '            "ExtUtils::MakeMaker" : "0"' >> META_new.json
+	$(NOECHO) $(ECHO) '         }' >> META_new.json
+	$(NOECHO) $(ECHO) '      }' >> META_new.json
+	$(NOECHO) $(ECHO) '   },' >> META_new.json
+	$(NOECHO) $(ECHO) '   "release_status" : "stable",' >> META_new.json
+	$(NOECHO) $(ECHO) '   "version" : "2.46",' >> META_new.json
+	$(NOECHO) $(ECHO) '   "x_serialization_backend" : "JSON::PP version 4.06"' >> META_new.json
+	$(NOECHO) $(ECHO) '}' >> META_new.json
+	-$(NOECHO) $(MV) META_new.json $(DISTVNAME)/META.json
+
+
+# --- MakeMaker signature section:
+signature :
+	cpansign -s
+
+
+# --- MakeMaker dist_basics section skipped.
+
+# --- MakeMaker dist_core section skipped.
+
+# --- MakeMaker distdir section skipped.
+
+# --- MakeMaker dist_test section skipped.
+
+# --- MakeMaker dist_ci section skipped.
+
+# --- MakeMaker distmeta section:
+distmeta : create_distdir metafile
+	$(NOECHO) cd $(DISTVNAME) && $(ABSPERLRUN) -MExtUtils::Manifest=maniadd -e 'exit unless -e q{META.yml};' \
+	  -e 'eval { maniadd({q{META.yml} => q{Module YAML meta-data (added by MakeMaker)}}) }' \
+	  -e '    or die "Could not add META.yml to MANIFEST: $${'\''@'\''}"' --
+	$(NOECHO) cd $(DISTVNAME) && $(ABSPERLRUN) -MExtUtils::Manifest=maniadd -e 'exit unless -f q{META.json};' \
+	  -e 'eval { maniadd({q{META.json} => q{Module JSON meta-data (added by MakeMaker)}}) }' \
+	  -e '    or die "Could not add META.json to MANIFEST: $${'\''@'\''}"' --
+
+
+
+# --- MakeMaker distsignature section:
+distsignature : distmeta
+	$(NOECHO) cd $(DISTVNAME) && $(ABSPERLRUN) -MExtUtils::Manifest=maniadd -e 'eval { maniadd({q{SIGNATURE} => q{Public-key signature (added by MakeMaker)}}) }' \
+	  -e '    or die "Could not add SIGNATURE to MANIFEST: $${'\''@'\''}"' --
+	$(NOECHO) cd $(DISTVNAME) && $(TOUCH) SIGNATURE
+	cd $(DISTVNAME) && cpansign -s
+
+
+
+# --- MakeMaker install section skipped.
+
+# --- MakeMaker force section:
+# Phony target to force checking subdirectories.
+FORCE :
+	$(NOECHO) $(NOOP)
+
+
+# --- MakeMaker perldepend section:
+PERL_HDRS = \
+        $(PERL_INCDEP)/EXTERN.h            \
+        $(PERL_INCDEP)/INTERN.h            \
+        $(PERL_INCDEP)/XSUB.h            \
+        $(PERL_INCDEP)/av.h            \
+        $(PERL_INCDEP)/bitcount.h            \
+        $(PERL_INCDEP)/charclass_invlists.h            \
+        $(PERL_INCDEP)/config.h            \
+        $(PERL_INCDEP)/cop.h            \
+        $(PERL_INCDEP)/cv.h            \
+        $(PERL_INCDEP)/dosish.h            \
+        $(PERL_INCDEP)/ebcdic_tables.h            \
+        $(PERL_INCDEP)/embed.h            \
+        $(PERL_INCDEP)/embedvar.h            \
+        $(PERL_INCDEP)/fakesdio.h            \
+        $(PERL_INCDEP)/feature.h            \
+        $(PERL_INCDEP)/form.h            \
+        $(PERL_INCDEP)/git_version.h            \
+        $(PERL_INCDEP)/gv.h            \
+        $(PERL_INCDEP)/handy.h            \
+        $(PERL_INCDEP)/hv.h            \
+        $(PERL_INCDEP)/hv_func.h            \
+        $(PERL_INCDEP)/hv_macro.h            \
+        $(PERL_INCDEP)/inline.h            \
+        $(PERL_INCDEP)/intrpvar.h            \
+        $(PERL_INCDEP)/invlist_inline.h            \
+        $(PERL_INCDEP)/iperlsys.h            \
+        $(PERL_INCDEP)/keywords.h            \
+        $(PERL_INCDEP)/l1_char_class_tab.h            \
+        $(PERL_INCDEP)/malloc_ctl.h            \
+        $(PERL_INCDEP)/metaconfig.h            \
+        $(PERL_INCDEP)/mg.h            \
+        $(PERL_INCDEP)/mg_data.h            \
+        $(PERL_INCDEP)/mg_raw.h            \
+        $(PERL_INCDEP)/mg_vtable.h            \
+        $(PERL_INCDEP)/mydtrace.h            \
+        $(PERL_INCDEP)/nostdio.h            \
+        $(PERL_INCDEP)/op.h            \
+        $(PERL_INCDEP)/op_reg_common.h            \
+        $(PERL_INCDEP)/opcode.h            \
+        $(PERL_INCDEP)/opnames.h            \
+        $(PERL_INCDEP)/overload.h            \
+        $(PERL_INCDEP)/pad.h            \
+        $(PERL_INCDEP)/parser.h            \
+        $(PERL_INCDEP)/patchlevel-debian.h            \
+        $(PERL_INCDEP)/patchlevel.h            \
+        $(PERL_INCDEP)/perl.h            \
+        $(PERL_INCDEP)/perl_inc_macro.h            \
+        $(PERL_INCDEP)/perl_langinfo.h            \
+        $(PERL_INCDEP)/perl_siphash.h            \
+        $(PERL_INCDEP)/perlapi.h            \
+        $(PERL_INCDEP)/perlio.h            \
+        $(PERL_INCDEP)/perliol.h            \
+        $(PERL_INCDEP)/perlsdio.h            \
+        $(PERL_INCDEP)/perlvars.h            \
+        $(PERL_INCDEP)/perly.h            \
+        $(PERL_INCDEP)/pp.h            \
+        $(PERL_INCDEP)/pp_proto.h            \
+        $(PERL_INCDEP)/proto.h            \
+        $(PERL_INCDEP)/reentr.h            \
+        $(PERL_INCDEP)/regcharclass.h            \
+        $(PERL_INCDEP)/regcomp.h            \
+        $(PERL_INCDEP)/regexp.h            \
+        $(PERL_INCDEP)/regnodes.h            \
+        $(PERL_INCDEP)/sbox32_hash.h            \
+        $(PERL_INCDEP)/scope.h            \
+        $(PERL_INCDEP)/sv.h            \
+        $(PERL_INCDEP)/thread.h            \
+        $(PERL_INCDEP)/time64.h            \
+        $(PERL_INCDEP)/time64_config.h            \
+        $(PERL_INCDEP)/uconfig.h            \
+        $(PERL_INCDEP)/uni_keywords.h            \
+        $(PERL_INCDEP)/unicode_constants.h            \
+        $(PERL_INCDEP)/unixish.h            \
+        $(PERL_INCDEP)/utf8.h            \
+        $(PERL_INCDEP)/utfebcdic.h            \
+        $(PERL_INCDEP)/util.h            \
+        $(PERL_INCDEP)/uudmap.h            \
+        $(PERL_INCDEP)/vutil.h            \
+        $(PERL_INCDEP)/warnings.h            \
+        $(PERL_INCDEP)/zaphod32_hash.h            
+
+$(OBJECT) : $(PERL_HDRS)
+
+Expat.c : $(XSUBPPDEPS)
+
+
+# --- MakeMaker makefile section:
+
+$(OBJECT) : $(FIRST_MAKEFILE)
+
+# We take a very conservative approach here, but it's worth it.
+# We move Makefile to Makefile.old here to avoid gnu make looping.
+$(FIRST_MAKEFILE) : Makefile.PL $(CONFIGDEP)
+	$(NOECHO) $(ECHO) "Makefile out-of-date with respect to $?"
+	$(NOECHO) $(ECHO) "Cleaning current config before rebuilding Makefile..."
+	-$(NOECHO) $(RM_F) $(MAKEFILE_OLD)
+	-$(NOECHO) $(MV)   $(FIRST_MAKEFILE) $(MAKEFILE_OLD)
+	- $(MAKE) $(USEMAKEFILE) $(MAKEFILE_OLD) clean $(DEV_NULL)
+	$(PERLRUN) Makefile.PL 
+	$(NOECHO) $(ECHO) "==> Your Makefile has been rebuilt. <=="
+	$(NOECHO) $(ECHO) "==> Please rerun the $(MAKE) command.  <=="
+	$(FALSE)
+
+
+
+# --- MakeMaker staticmake section:
+
+# --- MakeMaker makeaperl section ---
+MAP_TARGET    = ../perl
+FULLPERL      = "/usr/bin/perl"
+MAP_PERLINC   = "-I../blib/arch" "-I../blib/lib" "-I/usr/lib/x86_64-linux-gnu/perl/5.34" "-I/usr/share/perl/5.34"
+
+
+# --- MakeMaker test section:
+TEST_VERBOSE=0
+TEST_TYPE=test_$(LINKTYPE)
+TEST_FILE = test.pl
+TEST_FILES = 
+TESTDB_SW = -d
+
+testdb :: testdb_$(LINKTYPE)
+	$(NOECHO) $(NOOP)
+
+test :: $(TEST_TYPE)
+	$(NOECHO) $(NOOP)
+
+# Occasionally we may face this degenerate target:
+test_ : test_dynamic
+	$(NOECHO) $(NOOP)
+
+subdirs-test_dynamic :: dynamic pure_all
+
+testdb_dynamic test_dynamic :: subdirs-test_dynamic
+	$(NOECHO) $(ECHO) 'No tests defined for $(NAME) extension.'
+
+subdirs-test_static :: static pure_all
+
+testdb_static test_static :: subdirs-test_static
+	$(NOECHO) $(ECHO) 'No tests defined for $(NAME) extension.'
+
+
+
+# --- MakeMaker ppd section:
+# Creates a PPD (Perl Package Description) for a binary distribution.
+ppd :
+	$(NOECHO) $(ECHO) '<SOFTPKG NAME="XML-Parser-Expat" VERSION="2.46">' > XML-Parser-Expat.ppd
+	$(NOECHO) $(ECHO) '    <ABSTRACT>Lowlevel access to James Clark'\''s expat XML parser</ABSTRACT>' >> XML-Parser-Expat.ppd
+	$(NOECHO) $(ECHO) '    <AUTHOR>Matt Sergeant (matt@sergeant.org)</AUTHOR>' >> XML-Parser-Expat.ppd
+	$(NOECHO) $(ECHO) '    <IMPLEMENTATION>' >> XML-Parser-Expat.ppd
+	$(NOECHO) $(ECHO) '        <ARCHITECTURE NAME="x86_64-linux-gnu-thread-multi-5.34" />' >> XML-Parser-Expat.ppd
+	$(NOECHO) $(ECHO) '        <CODEBASE HREF="" />' >> XML-Parser-Expat.ppd
+	$(NOECHO) $(ECHO) '    </IMPLEMENTATION>' >> XML-Parser-Expat.ppd
+	$(NOECHO) $(ECHO) '</SOFTPKG>' >> XML-Parser-Expat.ppd
+
+
+# --- MakeMaker pm_to_blib section:
+
+pm_to_blib : $(FIRST_MAKEFILE) $(TO_INST_PM)
+	$(NOECHO) $(ABSPERLRUN) -MExtUtils::Install -e 'pm_to_blib({@ARGV}, '\''$(INST_LIB)/auto'\'', q[$(PM_FILTER)], '\''$(PERM_DIR)'\'')' -- \
+	  'Expat.pm' '$(INST_LIB)/XML/Parser/Expat.pm' 
+	$(NOECHO) $(TOUCH) pm_to_blib
+
+
+# --- MakeMaker selfdocument section:
+
+# here so even if top_targets is overridden, these will still be defined
+# gmake will silently still work if any are .PHONY-ed but nmake won't
+
+static ::
+	$(NOECHO) $(NOOP)
+
+dynamic ::
+	$(NOECHO) $(NOOP)
+
+config ::
+	$(NOECHO) $(NOOP)
+
+
+# --- MakeMaker postamble section:
+
+
+# End.
diff --git a/MANIFEST b/MANIFEST
index 38ffed3..f2d460b 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -1,68 +1,71 @@
+Changes				Change log
+Expat/encoding.h		Header file; describes *.enc structure
+Expat/Expat.pm			XML::Parser::Expat module
+Expat/Expat.xs			Extension library
+Expat/Makefile
+Expat/Makefile.PL		perl MakeMaker script for XML::Parser::Expat
+Expat/typemap			XS typemap
 inc/Devel/CheckLib.pm
-Changes                         Change log
-Expat/Expat.pm                  XML::Parser::Expat module
-Expat/Expat.xs                  Extension library
-Expat/Makefile.PL               perl MakeMaker script for XML::Parser::Expat
-Expat/encoding.h                Header file; describes *.enc structure
-Expat/typemap                   XS typemap
-MANIFEST                        This file
-Makefile.PL                     perl MakeMaker script for XML::Parser
-Parser.pm                       XML::Parser module
-Parser/LWPExternEnt.pl          LWP based external entity handler
-Parser/Encodings/Japanese_Encodings.msg        Message about Japanese encodings.
-Parser/Encodings/README         Info about encoding maps
-Parser/Encodings/big5.enc       Big5 binary encoding map
-Parser/Encodings/euc-kr.enc     EUC-KR binary encoding map
-Parser/Encodings/iso-8859-2.enc ISO-8859-2 binary encoding map
-Parser/Encodings/iso-8859-3.enc ISO-8859-3 binary encoding map
-Parser/Encodings/iso-8859-4.enc ISO-8859-4 binary encoding map
-Parser/Encodings/iso-8859-5.enc ISO-8859-5 binary encoding map
-Parser/Encodings/iso-8859-7.enc ISO-8859-7 binary encoding map
-Parser/Encodings/iso-8859-8.enc ISO-8859-8 binary encoding map
-Parser/Encodings/iso-8859-9.enc ISO-8859-9 binary encoding map
-Parser/Encodings/iso-8859-15.enc ISO-8859-15 binary encoding map
-Parser/Encodings/windows-1250.enc cp1250-WinLatin2 binary encoding map
-Parser/Encodings/windows-1251.enc cp1251-Russian binary encoding map
-Parser/Encodings/windows-1252.enc cp1252-WinLatin1 binary encoding map
-Parser/Encodings/windows-1255.enc hebrew
-Parser/Encodings/x-euc-jp-jisx0221.enc   X-euc-jp-jisx0221 encoding map
-Parser/Encodings/x-euc-jp-unicode.enc    X-euc-jp-unicde encoding map
-Parser/Encodings/x-sjis-cp932.enc        x-sjis-cp932 encoding map
-Parser/Encodings/x-sjis-jdk117.enc       x-sjis-jdk117 encoding map
-Parser/Encodings/x-sjis-jisx0221.enc     x-sjis-jisx0221 encoding map
-Parser/Encodings/x-sjis-unicode.enc      x-sjis-unicode encoding map
+Makefile.PL			perl MakeMaker script for XML::Parser
+MANIFEST			This file
+MANIFEST.SKIP
+Parser.pm			XML::Parser module
+Parser/Encodings/big5.enc	Big5 binary encoding map
+Parser/Encodings/euc-kr.enc	EUC-KR binary encoding map
 Parser/Encodings/ibm866.enc
+Parser/Encodings/iso-8859-15.enc	ISO-8859-15 binary encoding map
+Parser/Encodings/iso-8859-2.enc	ISO-8859-2 binary encoding map
+Parser/Encodings/iso-8859-3.enc	ISO-8859-3 binary encoding map
+Parser/Encodings/iso-8859-4.enc	ISO-8859-4 binary encoding map
+Parser/Encodings/iso-8859-5.enc	ISO-8859-5 binary encoding map
+Parser/Encodings/iso-8859-7.enc	ISO-8859-7 binary encoding map
+Parser/Encodings/iso-8859-8.enc	ISO-8859-8 binary encoding map
+Parser/Encodings/iso-8859-9.enc	ISO-8859-9 binary encoding map
+Parser/Encodings/Japanese_Encodings.msg	Message about Japanese encodings.
 Parser/Encodings/koi8-r.enc
-Parser/Style/Debug.pm           Debug style parser
-Parser/Style/Objects.pm         Objects style parser
-Parser/Style/Stream.pm          Stream style parser
-Parser/Style/Subs.pm            Subs style parser
-Parser/Style/Tree.pm            Tree style parser
-README                          Short explanation
-samples/canonical               A utility to generate canonical XML
-samples/canontst.xml            An xml document to demonstrate canonical
-samples/ctest.dtd               An external DTD used by canontst.xml
-samples/REC-xml-19980210.xml    The XML spec in xml form
-samples/xmlcomments             A utility to extract comments
-samples/xmlfilter               A utility to filter elements
-samples/xmlstats                A utility to report on element statistics
-t/astress.t                     Test script
-t/cdata.t                       Test script
-t/decl.t                        Test script
-t/defaulted.t                   Test script
-t/encoding.t                    Test script
-t/external_ent.t                Test script
-t/file.t                        Test script
-t/file_open_scalar.t            Test script
-t/finish.t                      Test script
-t/ext.ent                       External entity for parament.t test
-t/ext2.ent                      External entity for parament.t test
-t/foo.dtd                       External DTD for parament.t test
-t/namespaces.t                  Test script
-t/parament.t                    Test script
-t/partial.t                     Test script
-t/skip.t                        Test script
-t/stream.t                      Test script
-t/styles.t                      Test script
+Parser/Encodings/README		Info about encoding maps
+Parser/Encodings/windows-1250.enc	cp1250-WinLatin2 binary encoding map
+Parser/Encodings/windows-1251.enc	cp1251-Russian binary encoding map
+Parser/Encodings/windows-1252.enc	cp1252-WinLatin1 binary encoding map
+Parser/Encodings/windows-1255.enc	hebrew
+Parser/Encodings/x-euc-jp-jisx0221.enc	X-euc-jp-jisx0221 encoding map
+Parser/Encodings/x-euc-jp-unicode.enc	X-euc-jp-unicde encoding map
+Parser/Encodings/x-sjis-cp932.enc	x-sjis-cp932 encoding map
+Parser/Encodings/x-sjis-jdk117.enc	x-sjis-jdk117 encoding map
+Parser/Encodings/x-sjis-jisx0221.enc	x-sjis-jisx0221 encoding map
+Parser/Encodings/x-sjis-unicode.enc	x-sjis-unicode encoding map
+Parser/LWPExternEnt.pl		LWP based external entity handler
+Parser/Style/Debug.pm		Debug style parser
+Parser/Style/Objects.pm		Objects style parser
+Parser/Style/Stream.pm		Stream style parser
+Parser/Style/Subs.pm		Subs style parser
+Parser/Style/Tree.pm		Tree style parser
+README				Short explanation
+README.md
+samples/canonical		A utility to generate canonical XML
+samples/canontst.xml		An xml document to demonstrate canonical
+samples/ctest.dtd		An external DTD used by canontst.xml
+samples/REC-xml-19980210.xml	The XML spec in xml form
+samples/xmlcomments		A utility to extract comments
+samples/xmlfilter		A utility to filter elements
+samples/xmlstats		A utility to report on element statistics
+t/astress.t			Test script
+t/cdata.t			Test script
+t/decl.t			Test script
+t/defaulted.t			Test script
+t/encoding.t			Test script
+t/ext.ent			External entity for parament.t test
+t/ext2.ent			External entity for parament.t test
+t/external_ent.t		Test script
+t/file.t			Test script
+t/file_open_scalar.t		Test script
+t/finish.t			Test script
+t/foo.dtd			External DTD for parament.t test
+t/namespaces.t			Test script
+t/parament.t			Test script
+t/partial.t			Test script
+t/skip.t			Test script
+t/stream.t			Test script
+t/styles.t			Test script
 META.yml                                 Module YAML meta-data (added by MakeMaker)
 META.json                                Module JSON meta-data (added by MakeMaker)
diff --git a/MANIFEST.SKIP b/MANIFEST.SKIP
new file mode 100644
index 0000000..714df8a
--- /dev/null
+++ b/MANIFEST.SKIP
@@ -0,0 +1,10 @@
+\.gitignore
+\.perltidyrc
+\.travis.yml
+cpanfile
+\.git/
+^MANIFEST.bak
+^MYMETA
+/MYMETA
+^Makefile$
+\.github/
diff --git a/META.json b/META.json
index e6e294d..78f824e 100644
--- a/META.json
+++ b/META.json
@@ -4,7 +4,7 @@
       "Clark Cooper (coopercc@netheaven.com)"
    ],
    "dynamic_config" : 1,
-   "generated_by" : "ExtUtils::MakeMaker version 7.34, CPAN::Meta::Converter version 2.150010",
+   "generated_by" : "ExtUtils::MakeMaker version 7.62, CPAN::Meta::Converter version 2.150010",
    "license" : [
       "perl_5"
    ],
@@ -33,7 +33,7 @@
       "runtime" : {
          "requires" : {
             "LWP::UserAgent" : "0",
-            "perl" : "5.00405"
+            "perl" : "5.004050"
          }
       },
       "test" : {
@@ -53,5 +53,5 @@
       }
    },
    "version" : "2.46",
-   "x_serialization_backend" : "JSON::PP version 2.97001"
+   "x_serialization_backend" : "JSON::PP version 4.06"
 }
diff --git a/META.yml b/META.yml
index b34608e..cf95e5e 100644
--- a/META.yml
+++ b/META.yml
@@ -9,7 +9,7 @@ build_requires:
 configure_requires:
   ExtUtils::MakeMaker: '0'
 dynamic_config: 1
-generated_by: 'ExtUtils::MakeMaker version 7.34, CPAN::Meta::Converter version 2.150010'
+generated_by: 'ExtUtils::MakeMaker version 7.62, CPAN::Meta::Converter version 2.150010'
 license: perl
 meta-spec:
   url: http://module-build.sourceforge.net/META-spec-v1.4.html
@@ -21,7 +21,7 @@ no_index:
     - inc
 requires:
   LWP::UserAgent: '0'
-  perl: '5.00405'
+  perl: '5.004050'
 resources:
   bugtracker: https://github.com/toddr/XML-Parser/issues
   repository: http://github.com/toddr/XML-Parser
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..e6e5425
--- /dev/null
+++ b/README.md
@@ -0,0 +1,491 @@
+[![Build Status](https://travis-ci.org/toddr/XML-Parser.png?branch=master)](https://travis-ci.org/toddr/XML-Parser)
+# NAME
+
+XML::Parser - A perl module for parsing XML documents
+
+# SYNOPSIS
+
+    use XML::Parser;
+
+    $p1 = XML::Parser->new(Style => 'Debug');
+    $p1->parsefile('REC-xml-19980210.xml');
+    $p1->parse('<foo id="me">Hello World</foo>');
+
+    # Alternative
+    $p2 = XML::Parser->new(Handlers => {Start => \&handle_start,
+                                       End   => \&handle_end,
+                                       Char  => \&handle_char});
+    $p2->parse($socket);
+
+    # Another alternative
+    $p3 = XML::Parser->new(ErrorContext => 2);
+
+    $p3->setHandlers(Char    => \&text,
+                     Default => \&other);
+
+    open(my $fh, 'xmlgenerator |');
+    $p3->parse($foo, ProtocolEncoding => 'ISO-8859-1');
+    close($foo);
+
+    $p3->parsefile('junk.xml', ErrorContext => 3);
+
+# DESCRIPTION
+
+This module provides ways to parse XML documents. It is built on top of
+[XML::Parser::Expat](https://metacpan.org/pod/XML::Parser::Expat), which is a lower level interface to James Clark's
+expat library. Each call to one of the parsing methods creates a new
+instance of XML::Parser::Expat which is then used to parse the document.
+Expat options may be provided when the XML::Parser object is created.
+These options are then passed on to the Expat object on each parse call.
+They can also be given as extra arguments to the parse methods, in which
+case they override options given at XML::Parser creation time.
+
+The behavior of the parser is controlled either by `["STYLES"](#styles)` and/or
+`["HANDLERS"](#handlers)` options, or by ["setHandlers"](#sethandlers) method. These all provide
+mechanisms for XML::Parser to set the handlers needed by XML::Parser::Expat.
+If neither `Style` nor `Handlers` are specified, then parsing just
+checks the document for being well-formed.
+
+When underlying handlers get called, they receive as their first parameter
+the _Expat_ object, not the Parser object.
+
+# METHODS
+
+- new
+
+    This is a class method, the constructor for XML::Parser. Options are passed
+    as keyword value pairs. Recognized options are:
+
+    - Style
+
+        This option provides an easy way to create a given style of parser. The
+        built in styles are: ["Debug"](#debug), ["Subs"](#subs), ["Tree"](#tree), ["Objects"](#objects),
+        and ["Stream"](#stream). These are all defined in separate packages under
+        `XML::Parser::Style::*`, and you can find further documentation for
+        each style both below, and in those packages.
+
+        Custom styles can be provided by giving a full package name containing
+        at least one '::'. This package should then have subs defined for each
+        handler it wishes to have installed. See ["STYLES"](#styles) below
+        for a discussion of each built in style.
+
+    - Handlers
+
+        When provided, this option should be an anonymous hash containing as
+        keys the type of handler and as values a sub reference to handle that
+        type of event. All the handlers get passed as their 1st parameter the
+        instance of expat that is parsing the document. Further details on
+        handlers can be found in ["HANDLERS"](#handlers). Any handler set here
+        overrides the corresponding handler set with the Style option.
+
+    - Pkg
+
+        Some styles will refer to subs defined in this package. If not provided,
+        it defaults to the package which called the constructor.
+
+    - ErrorContext
+
+        This is an Expat option. When this option is defined, errors are reported
+        in context. The value should be the number of lines to show on either side
+        of the line in which the error occurred.
+
+    - ProtocolEncoding
+
+        This is an Expat option. This sets the protocol encoding name. It defaults
+        to none. The built-in encodings are: `UTF-8`, `ISO-8859-1`, `UTF-16`, and
+        `US-ASCII`. Other encodings may be used if they have encoding maps in one
+        of the directories in the @Encoding\_Path list. Check ["ENCODINGS"](#encodings) for
+        more information on encoding maps. Setting the protocol encoding overrides
+        any encoding in the XML declaration.
+
+    - Namespaces
+
+        This is an Expat option. If this is set to a true value, then namespace
+        processing is done during the parse. See ["Namespaces" in XML::Parser::Expat](https://metacpan.org/pod/XML::Parser::Expat#Namespaces)
+        for further discussion of namespace processing.
+
+    - NoExpand
+
+        This is an Expat option. Normally, the parser will try to expand references
+        to entities defined in the internal subset. If this option is set to a true
+        value, and a default handler is also set, then the default handler will be
+        called when an entity reference is seen in text. This has no effect if a
+        default handler has not been registered, and it has no effect on the expansion
+        of entity references inside attribute values.
+
+    - Stream\_Delimiter
+
+        This is an Expat option. It takes a string value. When this string is found
+        alone on a line while parsing from a stream, then the parse is ended as if it
+        saw an end of file. The intended use is with a stream of xml documents in a
+        MIME multipart format. The string should not contain a trailing newline.
+
+    - ParseParamEnt
+
+        This is an Expat option. Unless standalone is set to "yes" in the XML
+        declaration, setting this to a true value allows the external DTD to be read,
+        and parameter entities to be parsed and expanded.
+
+    - NoLWP
+
+        This option has no effect if the ExternEnt or ExternEntFin handlers are
+        directly set. Otherwise, if true, it forces the use of a file based external
+        entity handler.
+
+    - Non\_Expat\_Options
+
+        If provided, this should be an anonymous hash whose keys are options that
+        shouldn't be passed to Expat. This should only be of concern to those
+        subclassing XML::Parser.
+
+- setHandlers(TYPE, HANDLER \[, TYPE, HANDLER \[...\]\])
+
+    This method registers handlers for various parser events. It overrides any
+    previous handlers registered through the Style or Handler options or through
+    earlier calls to setHandlers. By providing a false or undefined value as
+    the handler, the existing handler can be unset.
+
+    This method returns a list of type, handler pairs corresponding to the
+    input. The handlers returned are the ones that were in effect prior to
+    the call.
+
+    See a description of the handler types in ["HANDLERS"](#handlers).
+
+- parse(SOURCE \[, OPT => OPT\_VALUE \[...\]\])
+
+    The SOURCE parameter should either be a string containing the whole XML
+    document, or it should be an open IO::Handle. Constructor options to
+    XML::Parser::Expat given as keyword-value pairs may follow the SOURCE
+    parameter. These override, for this call, any options or attributes passed
+    through from the XML::Parser instance.
+
+    A die call is thrown if a parse error occurs. Otherwise it will return 1
+    or whatever is returned from the **Final** handler, if one is installed.
+    In other words, what parse may return depends on the style.
+
+- parsestring
+
+    This is just an alias for parse for backwards compatibility.
+
+- parsefile(FILE \[, OPT => OPT\_VALUE \[...\]\])
+
+    Open FILE for reading, then call parse with the open handle. The file
+    is closed no matter how parse returns. Returns what parse returns.
+
+- parse\_start(\[ OPT => OPT\_VALUE \[...\]\])
+
+    Create and return a new instance of XML::Parser::ExpatNB. Constructor
+    options may be provided. If an init handler has been provided, it is
+    called before returning the ExpatNB object. Documents are parsed by
+    making incremental calls to the parse\_more method of this object, which
+    takes a string. A single call to the parse\_done method of this object,
+    which takes no arguments, indicates that the document is finished.
+
+    If there is a final handler installed, it is executed by the parse\_done
+    method before returning and the parse\_done method returns whatever is
+    returned by the final handler.
+
+# HANDLERS
+
+Expat is an event based parser. As the parser recognizes parts of the
+document (say the start or end tag for an XML element), then any handlers
+registered for that type of an event are called with suitable parameters.
+All handlers receive an instance of XML::Parser::Expat as their first
+argument. See ["METHODS" in XML::Parser::Expat](https://metacpan.org/pod/XML::Parser::Expat#METHODS) for a discussion of the
+methods that can be called on this object.
+
+## Init                (Expat)
+
+This is called just before the parsing of the document starts.
+
+## Final                (Expat)
+
+This is called just after parsing has finished, but only if no errors
+occurred during the parse. Parse returns what this returns.
+
+## Start                (Expat, Element \[, Attr, Val \[,...\]\])
+
+This event is generated when an XML start tag is recognized. Element is the
+name of the XML element type that is opened with the start tag. The Attr &
+Val pairs are generated for each attribute in the start tag.
+
+## End                (Expat, Element)
+
+This event is generated when an XML end tag is recognized. Note that
+an XML empty tag (&lt;foo/>) generates both a start and an end event.
+
+## Char                (Expat, String)
+
+This event is generated when non-markup is recognized. The non-markup
+sequence of characters is in String. A single non-markup sequence of
+characters may generate multiple calls to this handler. Whatever the
+encoding of the string in the original document, this is given to the
+handler in UTF-8.
+
+## Proc                (Expat, Target, Data)
+
+This event is generated when a processing instruction is recognized.
+
+## Comment                (Expat, Data)
+
+This event is generated when a comment is recognized.
+
+## CdataStart        (Expat)
+
+This is called at the start of a CDATA section.
+
+## CdataEnd                (Expat)
+
+This is called at the end of a CDATA section.
+
+## Default                (Expat, String)
+
+This is called for any characters that don't have a registered handler.
+This includes both characters that are part of markup for which no
+events are generated (markup declarations) and characters that
+could generate events, but for which no handler has been registered.
+
+Whatever the encoding in the original document, the string is returned to
+the handler in UTF-8.
+
+## Unparsed                (Expat, Entity, Base, Sysid, Pubid, Notation)
+
+This is called for a declaration of an unparsed entity. Entity is the name
+of the entity. Base is the base to be used for resolving a relative URI.
+Sysid is the system id. Pubid is the public id. Notation is the notation
+name. Base and Pubid may be undefined.
+
+## Notation                (Expat, Notation, Base, Sysid, Pubid)
+
+This is called for a declaration of notation. Notation is the notation name.
+Base is the base to be used for resolving a relative URI. Sysid is the system
+id. Pubid is the public id. Base, Sysid, and Pubid may all be undefined.
+
+## ExternEnt        (Expat, Base, Sysid, Pubid)
+
+This is called when an external entity is referenced. Base is the base to be
+used for resolving a relative URI. Sysid is the system id. Pubid is the public
+id. Base, and Pubid may be undefined.
+
+This handler should either return a string, which represents the contents of
+the external entity, or return an open filehandle that can be read to obtain
+the contents of the external entity, or return undef, which indicates the
+external entity couldn't be found and will generate a parse error.
+
+If an open filehandle is returned, it must be returned as either a glob
+(\*FOO) or as a reference to a glob (e.g. an instance of IO::Handle).
+
+A default handler is installed for this event. The default handler is
+XML::Parser::lwp\_ext\_ent\_handler unless the NoLWP option was provided with
+a true value, otherwise XML::Parser::file\_ext\_ent\_handler is the default
+handler for external entities. Even without the NoLWP option, if the
+URI or LWP modules are missing, the file based handler ends up being used
+after giving a warning on the first external entity reference.
+
+The LWP external entity handler will use proxies defined in the environment
+(http\_proxy, ftp\_proxy, etc.).
+
+Please note that the LWP external entity handler reads the entire
+entity into a string and returns it, where as the file handler opens a
+filehandle.
+
+Also note that the file external entity handler will likely choke on
+absolute URIs or file names that don't fit the conventions of the local
+operating system.
+
+The expat base method can be used to set a basename for
+relative pathnames. If no basename is given, or if the basename is itself
+a relative name, then it is relative to the current working directory.
+
+## ExternEntFin        (Expat)
+
+This is called after parsing an external entity. It's not called unless
+an ExternEnt handler is also set. There is a default handler installed
+that pairs with the default ExternEnt handler.
+
+If you're going to install your own ExternEnt handler, then you should
+set (or unset) this handler too.
+
+## Entity                (Expat, Name, Val, Sysid, Pubid, Ndata, IsParam)
+
+This is called when an entity is declared. For internal entities, the Val
+parameter will contain the value and the remaining three parameters will be
+undefined. For external entities, the Val parameter will be undefined, the
+Sysid parameter will have the system id, the Pubid parameter will have the
+public id if it was provided (it will be undefined otherwise), the Ndata
+parameter will contain the notation for unparsed entities. If this is a
+parameter entity declaration, then the IsParam parameter is true.
+
+Note that this handler and the Unparsed handler above overlap. If both are
+set, then this handler will not be called for unparsed entities.
+
+## Element                (Expat, Name, Model)
+
+The element handler is called when an element declaration is found. Name
+is the element name, and Model is the content model as an XML::Parser::Content
+object. See ["XML::Parser::ContentModel Methods" in XML::Parser::Expat](https://metacpan.org/pod/XML::Parser::Expat#XML::Parser::ContentModel-Methods)
+for methods available for this class.
+
+## Attlist                (Expat, Elname, Attname, Type, Default, Fixed)
+
+This handler is called for each attribute in an ATTLIST declaration.
+So an ATTLIST declaration that has multiple attributes will generate multiple
+calls to this handler. The Elname parameter is the name of the element with
+which the attribute is being associated. The Attname parameter is the name
+of the attribute. Type is the attribute type, given as a string. Default is
+the default value, which will either be "#REQUIRED", "#IMPLIED" or a quoted
+string (i.e. the returned string will begin and end with a quote character).
+If Fixed is true, then this is a fixed attribute.
+
+## Doctype                (Expat, Name, Sysid, Pubid, Internal)
+
+This handler is called for DOCTYPE declarations. Name is the document type
+name. Sysid is the system id of the document type, if it was provided,
+otherwise it's undefined. Pubid is the public id of the document type,
+which will be undefined if no public id was given. Internal is the internal
+subset, given as a string. If there was no internal subset, it will be
+undefined. Internal will contain all whitespace, comments, processing
+instructions, and declarations seen in the internal subset. The declarations
+will be there whether or not they have been processed by another handler
+(except for unparsed entities processed by the Unparsed handler). However,
+comments and processing instructions will not appear if they've been processed
+by their respective handlers.
+
+## \* DoctypeFin                (Parser)
+
+This handler is called after parsing of the DOCTYPE declaration has finished,
+including any internal or external DTD declarations.
+
+## XMLDecl                (Expat, Version, Encoding, Standalone)
+
+This handler is called for xml declarations. Version is a string containing
+the version. Encoding is either undefined or contains an encoding string.
+Standalone will be either true, false, or undefined if the standalone attribute
+is yes, no, or not made respectively.
+
+# STYLES
+
+## Debug
+
+This just prints out the document in outline form. Nothing special is
+returned by parse.
+
+## Subs
+
+Each time an element starts, a sub by that name in the package specified
+by the Pkg option is called with the same parameters that the Start
+handler gets called with.
+
+Each time an element ends, a sub with that name appended with an underscore
+("\_"), is called with the same parameters that the End handler gets called
+with.
+
+Nothing special is returned by parse.
+
+## Tree
+
+Parse will return a parse tree for the document. Each node in the tree
+takes the form of a tag, content pair. Text nodes are represented with
+a pseudo-tag of "0" and the string that is their content. For elements,
+the content is an array reference. The first item in the array is a
+(possibly empty) hash reference containing attributes. The remainder of
+the array is a sequence of tag-content pairs representing the content
+of the element.
+
+So for example the result of parsing:
+
+    <foo><head id="a">Hello <em>there</em></head><bar>Howdy<ref/></bar>do</foo>
+
+would be:
+
+               Tag   Content
+    ==================================================================
+    [foo, [{}, head, [{id => "a"}, 0, "Hello ",  em, [{}, 0, "there"]],
+                bar, [         {}, 0, "Howdy",  ref, [{}]],
+                  0, "do"
+          ]
+    ]
+
+The root document "foo", has 3 children: a "head" element, a "bar"
+element and the text "do". After the empty attribute hash, these are
+represented in it's contents by 3 tag-content pairs.
+
+## Objects
+
+This is similar to the Tree style, except that a hash object is created for
+each element. The corresponding object will be in the class whose name
+is created by appending "::" and the element name to the package set with
+the Pkg option. Non-markup text will be in the ::Characters class. The
+contents of the corresponding object will be in an anonymous array that
+is the value of the Kids property for that object.
+
+## Stream
+
+This style also uses the Pkg package. If none of the subs that this
+style looks for is there, then the effect of parsing with this style is
+to print a canonical copy of the document without comments or declarations.
+All the subs receive as their 1st parameter the Expat instance for the
+document they're parsing.
+
+It looks for the following routines:
+
+- StartDocument
+
+    Called at the start of the parse .
+
+- StartTag
+
+    Called for every start tag with a second parameter of the element type. The $\_
+    variable will contain a copy of the tag and the %\_ variable will contain
+    attribute values supplied for that element.
+
+- EndTag
+
+    Called for every end tag with a second parameter of the element type. The $\_
+    variable will contain a copy of the end tag.
+
+- Text
+
+    Called just before start or end tags with accumulated non-markup text in
+    the $\_ variable.
+
+- PI
+
+    Called for processing instructions. The $\_ variable will contain a copy of
+    the PI and the target and data are sent as 2nd and 3rd parameters
+    respectively.
+
+- EndDocument
+
+    Called at conclusion of the parse.
+
+# ENCODINGS
+
+XML documents may be encoded in character sets other than Unicode as
+long as they may be mapped into the Unicode character set. Expat has
+further restrictions on encodings. Read the xmlparse.h header file in
+the expat distribution to see details on these restrictions.
+
+Expat has built-in encodings for: `UTF-8`, `ISO-8859-1`, `UTF-16`, and
+`US-ASCII`. Encodings are set either through the XML declaration
+encoding attribute or through the ProtocolEncoding option to XML::Parser
+or XML::Parser::Expat.
+
+For encodings other than the built-ins, expat calls the function
+load\_encoding in the Expat package with the encoding name. This function
+looks for a file in the path list @XML::Parser::Expat::Encoding\_Path, that
+matches the lower-cased name with a '.enc' extension. The first one it
+finds, it loads.
+
+If you wish to build your own encoding maps, check out the XML::Encoding
+module from CPAN.
+
+# AUTHORS
+
+Larry Wall <`larry@wall.org`> wrote version 1.0.
+
+Clark Cooper <`coopercc@netheaven.com`> picked up support, changed the API
+for this version (2.x), provided documentation,
+and added some standard package features.
+
+Matt Sergeant <`matt@sergeant.org`> is now maintaining XML::Parser